← back to Prestige Car Wash Video

src/adminSections.ts

38 lines

import dims from './dims.json';
import type { Section } from './sections';
import { FPS } from './sections';

const AMBER = '#f5b301';
const D: Record<string, { w: number; h: number }> = dims as any;
const sec = (s: number) => Math.round(s * FPS);

const TABS: Array<[string, string, string]> = [
  ['overview',    'Overview',              'Live counts across the whole growth dataset'],
  ['competitors', 'Competitors',           '12 rival washes in the San Fernando Valley'],
  ['best-post',   'Best Times to Post',    'When engagement peaks by channel'],
  ['best-market', 'Best Times to Market',  'When to spend to convert'],
  ['holidays',    'Holiday-Driven',        'Eight seasonal campaign hooks'],
  ['services',    'Services',              'Editable service catalog behind the storefront'],
  ['suggestions', 'Grow the Business',     'Ten ranked growth plays with rationale'],
  ['ads',         'Online Ads',            'Platform-by-platform ad headlines'],
  ['directories', 'Groups · Directories',  'Nextdoor, local groups & listing sites'],
  ['google',      'Google Business',       'Places profile draft-update panel'],
  ['leads',       'Leads',                 'Inbound booking requests from the site'],
  ['credentials', 'Credentials',           'Keys & access (presence + last-4 only)'],
];

export const ADMIN_SECTIONS: Section[] = [
  { kind: 'card', id: 'intro', act: 'Behind the scenes', title: 'Growth Center',
    sub: 'The admin backend that keeps Prestige sharp', frames: sec(8), accent: AMBER },
  ...TABS.map(([key, title, sub]): Section => {
    const dk = 'admin-' + key;
    return { kind: 'shot', id: dk, file: `shots/${dk}.png`, w: D[dk]?.w, h: D[dk]?.h,
      act: 'Admin · Growth Center', title, sub, url: 'prestigecarwash.com/admin',
      frames: sec(4.6), accent: AMBER };
  }),
  { kind: 'card', id: 'outro', act: 'Prestige Car Wash', title: 'Growth Center',
    sub: 'Competitors · campaigns · ads · leads — all in one place', frames: sec(4.5), accent: '#34d399' },
];

export const ADMIN_TOTAL = ADMIN_SECTIONS.reduce((a, s) => a + s.frames, 0);