/* global window */
// Roster + service data. Real names from Booksy; epithets and lore are original brand voice.

const BARBERS = [
  {
    id: "connie",
    name: "CONNIE",
    epithet: "The Crow Witch",
    ja: "烏",
    rank: "I",
    status: "avail",
    statusLabel: "Available",
    chair: "Chair I",
    years: "Resident Artist",
    sigil: "BA · I",
    quote: "Sit down. Pour the whisky. Trust the blade.",
    quoteSrc: "House Doctrine",
    bio: "Precision scissor work and restyles. Reads your face like a deck of cards before the first snip.",
    portraitLabel: { line1: "[ PORTRAIT 01 ]", line2: "CONNIE — chair light, low key" },
    stats: { Blade: 92, Fade: 70, Beard: 55, Classics: 96, Atmosphere: 98 },
    tags: ["Scissor Craft", "Restyle", "Slow Burn"],
    bestCut: "the-restyle",
  },
  {
    id: "eliott",
    name: "ELIOTT McKEE",
    epithet: "The Made Man",
    ja: "鬼",
    rank: "II",
    status: "lim",
    statusLabel: "Limited Slots",
    chair: "Chair II",
    years: "Senior Blade",
    sigil: "BA · II",
    quote: "Walk in a fool. Walk out made.",
    quoteSrc: "Posted on Mirror III",
    bio: "Old-world gentleman cuts, hot towels, and a beard architecture practice that borders on religion.",
    portraitLabel: { line1: "[ PORTRAIT 02 ]", line2: "ELIOTT — straight razor, half-light" },
    stats: { Blade: 99, Fade: 82, Beard: 99, Classics: 90, Atmosphere: 86 },
    tags: ["Straight Razor", "Hot Towel", "Beard Architect"],
    bestCut: "the-honour",
  },
  {
    id: "david",
    name: "DAVID HILL",
    epithet: "The Wolf",
    ja: "狼",
    rank: "III",
    status: "avail",
    statusLabel: "Available",
    chair: "Chair III",
    years: "Long-hair Specialist",
    sigil: "BA · III",
    quote: "Every cut is a small funeral. Choose what you bury.",
    quoteSrc: "Carved into Chair III",
    bio: "Fades sharp enough to slice mail, and the only hand in the studio you trust with a foot of hair on the floor.",
    portraitLabel: { line1: "[ PORTRAIT 03 ]", line2: "DAVID — fade station, red bounce light" },
    stats: { Blade: 88, Fade: 99, Beard: 78, Classics: 80, Atmosphere: 90 },
    tags: ["Skin Fade", "Long-hair Restyle", "Quick Blade"],
    bestCut: "the-standard",
  },
];

const CUTS = [
  {
    id: "the-standard",
    name: "THE STANDARD",
    ja: "標準",
    blurb: "The daily blade. A reliable kill — sharp, clean, takes forty-five minutes and a whisky.",
    price: "£30",
    duration: "45 min",
    tier: "BLADE · COMMON",
    stats: { Sharpness: 88, Boldness: 60, Volume: 65, Upkeep: 70 },
    notes: "Includes consultation · hot towel · finish",
  },
  {
    id: "the-honour",
    name: "THE FULL HONOUR",
    ja: "礼装",
    blurb: "Haircut, beard, and the long ceremony. Walk out feeling like the priest of your own funeral.",
    price: "£35",
    duration: "1 h",
    tier: "BLADE · RITE",
    stats: { Sharpness: 95, Boldness: 82, Volume: 70, Upkeep: 60 },
    notes: "Cut · beard sculpt · hot towel · facial oil",
  },
  {
    id: "the-initiate",
    name: "THE INITIATE",
    ja: "見習",
    blurb: "For those still serving the apprenticeship. Bring your matric. Leave a different soul.",
    price: "£26",
    duration: "45 min",
    tier: "BLADE · STUDENT",
    stats: { Sharpness: 84, Boldness: 56, Volume: 60, Upkeep: 72 },
    notes: "Valid student ID required",
  },
  {
    id: "the-restyle",
    name: "THE RESTYLE",
    ja: "再装",
    blurb: "Long hair, ronin energy. Bring everything you have. Decide what walks home with you.",
    price: "£35",
    duration: "45 min",
    tier: "BLADE · RARE",
    stats: { Sharpness: 80, Boldness: 96, Volume: 92, Upkeep: 55 },
    notes: "Includes restyle consultation · wash · finish",
  },
  {
    id: "the-beard",
    name: "THE BEARD",
    ja: "髭",
    blurb: "Sculpted face armour. Outline, hot towel, oil. For the gentleman with murder in the schedule.",
    price: "£15",
    duration: "30 min",
    tier: "BLADE · QUICK",
    stats: { Sharpness: 90, Boldness: 74, Volume: 30, Upkeep: 80 },
    notes: "Beard trim · line work · finish oil",
  },
  {
    id: "the-cleaver",
    name: "THE CLEAVER",
    ja: "斬",
    blurb: "Number two on the sides, full top. The kind of cut that wins a bar fight before it starts.",
    price: "£28",
    duration: "30 min",
    tier: "BLADE · COMMON",
    stats: { Sharpness: 78, Boldness: 88, Volume: 45, Upkeep: 90 },
    notes: "Clipper work · neck shave · finish",
  },
];

const TIMES = ["09:00", "09:45", "10:30", "11:15", "12:00", "12:45", "13:30", "14:15", "15:00", "15:45", "16:30", "17:15"];
const GONE_TIMES = new Set(["09:00", "10:30", "13:30", "16:30"]);

const DAYS = [
  { dow: "MON", num: 25, full: "Mon · 25 May" },
  { dow: "TUE", num: 26, full: "Tue · 26 May" },
  { dow: "WED", num: 27, full: "Wed · 27 May" },
  { dow: "THU", num: 28, full: "Thu · 28 May" },
  { dow: "FRI", num: 29, full: "Fri · 29 May" },
  { dow: "SAT", num: 30, full: "Sat · 30 May" },
  { dow: "SUN", num: 31, full: "Sun · 31 May", closed: true },
];

const STAT_ORDER_BARBER = ["Blade", "Fade", "Beard", "Classics", "Atmosphere"];
const STAT_ORDER_CUT = ["Sharpness", "Boldness", "Volume", "Upkeep"];

Object.assign(window, {
  BARBERS, CUTS, TIMES, GONE_TIMES, DAYS, STAT_ORDER_BARBER, STAT_ORDER_CUT,
});
