// === Mock data for the prototype ===
// Real estate context: a mid-sized firm called "Initial Estate"

const POSITIONS = [
  {
    id: "pos_001",
    title: "Senior Property Sales Consultant",
    department: "Sales — Residential",
    reportsTo: "Head of Residential Sales",
    location: "Bangkok HQ",
    employmentType: "Full-time",
    status: "Open",
    openings: 3,
    candidates: 47,
    pendingReview: 8,
    posted: "Apr 22, 2026",
    jd: "Lead high-touch sales of luxury condominium and freehold residential properties (THB 15M+ ticket size). Build a personal pipeline of HNW buyers, conduct site visits, and close deals end-to-end. Mentor junior consultants.",
    mustHave: [
      "5+ years selling residential property in Bangkok",
      "Personal closed sales record ≥ THB 200M (last 24 months)",
      "Working English & Thai",
      "RERA / DBD broker license"
    ],
    niceToHave: [
      "Existing HNW client book",
      "Mandarin or Japanese conversational",
      "Experience selling pre-launch / off-plan inventory"
    ],
    disqualifiers: [
      "No verifiable sales record",
      "Pattern of <12-month tenures across 3+ roles"
    ],
    skills: ["HNW sales", "Negotiation", "CRM (Salesforce)", "Property law basics", "Mortgage structuring"],
    education: "Bachelor's degree, any field",
    certifications: ["DBD Real Estate Broker License (required)"],
    weights: {
      experience: 25,
      skills: 15,
      industry: 25,
      leadership: 5,
      kpi: 20,
      stability: 10,
    },
    kpis: [
      "Annual closed GMV ≥ THB 350M",
      "Lead-to-viewing conversion ≥ 45%",
      "Viewing-to-offer conversion ≥ 18%",
      "NPS from buyers ≥ 60",
    ],
  },
  {
    id: "pos_002",
    title: "Project Development Manager",
    department: "Development",
    reportsTo: "VP Development",
    location: "Bangkok HQ",
    employmentType: "Full-time",
    status: "Open",
    openings: 1,
    candidates: 22,
    pendingReview: 4,
    posted: "Apr 15, 2026",
    jd: "Own a mixed-use development from feasibility through handover. Coordinate architecture, contractors, finance, and sales handoff. Manage budgets up to THB 2B and timelines across 24–36 months.",
    mustHave: [
      "8+ years in real estate development",
      "Delivered ≥ 2 projects above THB 1B GDV",
      "Civil / Architecture / RE degree",
      "Fluent English"
    ],
    niceToHave: [
      "Mixed-use / hospitality experience",
      "PMP or PRINCE2 certified"
    ],
    disqualifiers: [
      "No on-site delivery experience",
    ],
    skills: ["Project management", "Contractor management", "Feasibility", "Cost engineering", "BIM"],
    education: "Bachelor's in Civil Eng, Architecture, or Real Estate",
    certifications: ["PMP (preferred)"],
    weights: {
      experience: 30,
      skills: 15,
      industry: 20,
      leadership: 15,
      kpi: 15,
      stability: 5,
    },
    kpis: [
      "Project delivered within ±3% of budget",
      "Project delivered within ±60 days of planned handover",
      "Defect rate at handover < 0.5%",
    ],
  },
  {
    id: "pos_003",
    title: "Head of Leasing — Commercial",
    department: "Leasing",
    reportsTo: "COO",
    location: "Bangkok HQ",
    employmentType: "Full-time",
    status: "Open",
    openings: 1,
    candidates: 14,
    pendingReview: 3,
    posted: "Apr 28, 2026",
    jd: "Lead the commercial leasing team across our Grade A office and retail portfolio (~120,000 sqm). Set leasing strategy, negotiate anchor tenants, manage a team of 6.",
    mustHave: ["10+ years commercial leasing", "Team leadership ≥ 5 reports", "English fluent"],
    niceToHave: ["JLL / CBRE / Colliers background", "Retail anchor experience"],
    disqualifiers: [],
    skills: ["Commercial leasing", "Tenant negotiation", "Team leadership", "P&L"],
    education: "Bachelor's degree",
    certifications: [],
    weights: {
      experience: 25,
      skills: 15,
      industry: 20,
      leadership: 20,
      kpi: 15,
      stability: 5,
    },
    kpis: ["Portfolio occupancy ≥ 92%", "Average rent ≥ benchmark + 5%", "Tenant retention ≥ 85%"],
  },
  {
    id: "pos_004",
    title: "Marketing Manager — Residential",
    department: "Marketing",
    reportsTo: "Head of Marketing",
    location: "Bangkok HQ",
    status: "Open",
    openings: 1,
    candidates: 31,
    pendingReview: 5,
    posted: "Apr 18, 2026",
    jd: "Drive demand-gen across digital and offline channels for our residential launches. Manage agency partners, brand campaigns, and on-site events.",
    mustHave: ["5+ years B2C marketing", "Digital + brand mix", "Real estate or luxury background"],
    niceToHave: ["Performance marketing certified", "CRM lifecycle experience"],
    disqualifiers: [],
    skills: ["Brand strategy", "Performance marketing", "Event marketing", "CRM"],
    education: "Bachelor's in Marketing or related",
    certifications: [],
    weights: { experience: 20, skills: 25, industry: 20, leadership: 10, kpi: 15, stability: 10 },
    kpis: ["Marketing-qualified leads ≥ target", "CPL ≤ benchmark", "Brand awareness +5pp YoY"],
  },
];

// Candidates — at least one rich one for the detail view
const CANDIDATES = [
  {
    id: "cand_001",
    name: "Somchai Phongchai",
    initials: "SP",
    avatarColor: "#B7E4C7",
    email: "somchai.p@****.com",
    phone: "+66 8• ••• ••82",
    location: "Bangkok, Thailand",
    currentTitle: "Senior Sales Manager",
    currentCompany: "Sansiri PLC",
    yearsExperience: 11,
    salaryExpectation: "THB 180,000 / mo + commission",
    noticePeriod: "60 days",
    source: "LinkedIn — Sourced",
    appliedDate: "Apr 28, 2026",
    positionId: "pos_001",
    status: "AI screened",
    statusLabel: "Pending HR review",
    score: 87,
    recommendation: "Strong fit",
    subscores: {
      experience: 92,
      skills: 84,
      industry: 95,
      leadership: 70,
      kpi: 88,
      stability: 78,
    },
    strengths: [
      "11 years selling residential property in Bangkok — directly matches the must-have.",
      "Reported personal closed GMV of THB 410M over the last 24 months (target ≥ THB 200M).",
      "Active DBD broker license, valid through 2027.",
      "Has led teams of 4–6 junior consultants — useful for the mentorship aspect of this role.",
    ],
    weaknesses: [
      "No explicit pre-launch / off-plan experience listed (nice-to-have).",
      "Mandarin / Japanese not listed.",
    ],
    risks: [
      "Job tenure in last 5 years averages 1.8 years per role — slightly below the 2-year benchmark.",
      "Last role title (Senior Sales Manager) implies team accountability not direct selling — verify personal closing remained primary KPI.",
    ],
    missing: [],
    interviewQuestions: [
      "Walk me through your largest single residential transaction in the last 24 months — ticket size, buyer profile, time to close, and one obstacle you had to overcome.",
      "You list THB 410M closed GMV. How was that split between personal closes and team-attributed deals?",
      "Why three roles in five years? What were you optimizing for?",
      "Describe how you'd hand off an HNW Mandarin-speaking buyer if you don't speak Mandarin yourself.",
      "What's your view on the Bangkok luxury condo absorption rate over the next 12 months — and how would it change your sales approach?",
    ],
    kpiAlignment: [
      { kpi: "Annual closed GMV ≥ THB 350M", status: "match", note: "Self-reported THB 410M / 24mo (~THB 205M/yr). Below target if pro-rated; verify on call." },
      { kpi: "Lead-to-viewing conversion ≥ 45%", status: "partial", note: "Conversion not stated in resume — ask on call." },
      { kpi: "Viewing-to-offer conversion ≥ 18%", status: "partial", note: "Not stated in resume." },
      { kpi: "NPS from buyers ≥ 60", status: "partial", note: "Mentions 'high client satisfaction' — no number." },
    ],
    requirementMatch: [
      { req: "5+ years selling residential property in Bangkok", cand: "11 years — Sansiri, AP Thai, Origin", status: "match" },
      { req: "Personal closed sales ≥ THB 200M (24 mo)", cand: "THB 410M reported", status: "match" },
      { req: "Working English & Thai", cand: "Thai native, English (TOEIC 820)", status: "match" },
      { req: "DBD broker license", cand: "License #BR-2019-44…, valid 2027", status: "match" },
      { req: "HNW client book (nice)", cand: "Mentioned but not quantified", status: "partial" },
      { req: "Mandarin / Japanese (nice)", cand: "Not listed", status: "miss" },
      { req: "Pre-launch / off-plan (nice)", cand: "Not explicitly listed", status: "miss" },
    ],
    workHistory: [
      { company: "Sansiri PLC", title: "Senior Sales Manager", years: "2023 — present", duration: "2.5 yrs", note: "Luxury condo segment, reported to Head of Sales" },
      { company: "AP (Thailand) PCL", title: "Sales Manager", years: "2021 — 2023", duration: "1.8 yrs", note: "Mid-rise residential" },
      { company: "Origin Property", title: "Senior Sales Consultant", years: "2019 — 2021", duration: "2 yrs", note: "Off-plan condo launches" },
      { company: "LPN Development", title: "Sales Consultant", years: "2015 — 2019", duration: "4 yrs", note: "Started career" },
    ],
    education: [
      { school: "Chulalongkorn University", degree: "B.A. Economics", years: "2011 — 2015" },
    ],
    certs: ["DBD Real Estate Broker License", "TOEIC 820"],
    callPrep: {
      summary: "Senior residential sales pro with 11 years in Bangkok, strong on industry fit and KPI alignment. Verify the personal-vs-team split on the THB 410M closed GMV claim, and probe the 1.8-year average tenure. License is verified.",
      verify: [
        "Personal-vs-team split on closed GMV",
        "Reasons for 3 role changes in 5 years",
        "Whether broker license number we found matches DBD registry",
      ],
      salary: [
        "Confirm THB 180k base + commission expectation against our band (THB 140–170k base + tiered comm).",
        "Open to a higher commission floor in exchange for lower base?",
      ],
      availability: [
        "60-day notice — would current employer waive on garden leave?",
        "Earliest realistic start date.",
      ],
      concerns: [
        "Tenure pattern — confirm it's not at risk of repeating.",
        "Pre-launch experience gap — comfort selling unfinished off-plan inventory.",
      ],
      nextStep: "If verifications hold, schedule 60-min interview with Head of Residential Sales next week. Otherwise, move to talent pool.",
    },
  },
  {
    id: "cand_002",
    name: "Pim Suriyakul",
    initials: "PS",
    avatarColor: "#FED7AA",
    email: "pim.s@****.com",
    phone: "+66 8• ••• ••14",
    location: "Bangkok, Thailand",
    currentTitle: "Sales Consultant",
    currentCompany: "AP Thailand",
    yearsExperience: 6,
    salaryExpectation: "THB 110,000 / mo + commission",
    noticePeriod: "30 days",
    source: "Referral — N. Wattana",
    appliedDate: "Apr 27, 2026",
    positionId: "pos_001",
    status: "AI screened",
    score: 78,
    recommendation: "Strong fit",
    subscores: { experience: 78, skills: 82, industry: 88, leadership: 55, kpi: 80, stability: 90 },
    riskFlags: 0,
  },
  {
    id: "cand_003",
    name: "Watcharin Boonprasert",
    initials: "WB",
    avatarColor: "#FECACA",
    email: "watcharin.b@****.com",
    phone: "+66 8• ••• ••03",
    location: "Bangkok, Thailand",
    currentTitle: "Senior Sales",
    currentCompany: "Magnolia Quality Development",
    yearsExperience: 8,
    salaryExpectation: "THB 150,000 / mo + commission",
    noticePeriod: "45 days",
    source: "JobsDB",
    appliedDate: "Apr 26, 2026",
    positionId: "pos_001",
    status: "AI screened",
    score: 71,
    recommendation: "Potential fit",
    subscores: { experience: 80, skills: 70, industry: 78, leadership: 60, kpi: 65, stability: 70 },
    riskFlags: 1,
  },
  {
    id: "cand_004",
    name: "Apinya Ratchanon",
    initials: "AR",
    avatarColor: "#BFDBFE",
    email: "apinya.r@****.com",
    phone: "+66 8• ••• ••55",
    location: "Bangkok, Thailand",
    currentTitle: "Property Consultant",
    currentCompany: "Plus Property",
    yearsExperience: 5,
    salaryExpectation: "THB 95,000 / mo",
    noticePeriod: "30 days",
    source: "LinkedIn",
    appliedDate: "Apr 25, 2026",
    positionId: "pos_001",
    status: "HR reviewed",
    score: 74,
    recommendation: "Potential fit",
    subscores: { experience: 70, skills: 78, industry: 80, leadership: 50, kpi: 72, stability: 85 },
    riskFlags: 0,
  },
  {
    id: "cand_005",
    name: "Krit Tanthaworn",
    initials: "KT",
    avatarColor: "#DDD6FE",
    email: "krit.t@****.com",
    phone: "+66 8• ••• ••91",
    location: "Bangkok, Thailand",
    currentTitle: "Real Estate Agent",
    currentCompany: "CBRE Thailand",
    yearsExperience: 7,
    salaryExpectation: "THB 130,000 / mo + commission",
    noticePeriod: "60 days",
    source: "LinkedIn — Sourced",
    appliedDate: "Apr 24, 2026",
    positionId: "pos_001",
    status: "Call scheduled",
    score: 82,
    recommendation: "Strong fit",
    subscores: { experience: 85, skills: 80, industry: 92, leadership: 65, kpi: 78, stability: 80 },
    riskFlags: 0,
  },
  {
    id: "cand_006",
    name: "Niran Vongchai",
    initials: "NV",
    avatarColor: "#FCD34D",
    email: "niran.v@****.com",
    phone: "+66 8• ••• ••27",
    location: "Bangkok, Thailand",
    currentTitle: "Junior Sales",
    currentCompany: "Pruksa Real Estate",
    yearsExperience: 3,
    salaryExpectation: "THB 70,000 / mo",
    noticePeriod: "30 days",
    source: "JobsDB",
    appliedDate: "Apr 23, 2026",
    positionId: "pos_001",
    status: "AI screened",
    score: 52,
    recommendation: "Weak fit",
    subscores: { experience: 45, skills: 60, industry: 65, leadership: 35, kpi: 50, stability: 70 },
    riskFlags: 2,
  },
  {
    id: "cand_007",
    name: "Suthida Charoenwong",
    initials: "SC",
    avatarColor: "#A7F3D0",
    email: "suthida.c@****.com",
    phone: "+66 8• ••• ••48",
    location: "Bangkok, Thailand",
    currentTitle: "Sales Director",
    currentCompany: "Origin Property",
    yearsExperience: 13,
    salaryExpectation: "THB 220,000 / mo + commission",
    noticePeriod: "90 days",
    source: "Headhunter — Robert Walters",
    appliedDate: "Apr 22, 2026",
    positionId: "pos_001",
    status: "Shortlisted",
    score: 91,
    recommendation: "Strong fit",
    subscores: { experience: 95, skills: 88, industry: 92, leadership: 92, kpi: 90, stability: 85 },
    riskFlags: 0,
  },
  {
    id: "cand_008",
    name: "Bordin Wattanachai",
    initials: "BW",
    avatarColor: "#FCA5A5",
    email: "bordin.w@****.com",
    phone: "+66 8• ••• ••72",
    location: "Bangkok, Thailand",
    currentTitle: "Sales Consultant",
    currentCompany: "Various (4 in 5 yrs)",
    yearsExperience: 5,
    salaryExpectation: "THB 100,000 / mo",
    noticePeriod: "Immediate",
    source: "JobsDB",
    appliedDate: "Apr 21, 2026",
    positionId: "pos_001",
    status: "AI screened",
    score: 41,
    recommendation: "Not recommended",
    subscores: { experience: 55, skills: 50, industry: 60, leadership: 30, kpi: 40, stability: 20 },
    riskFlags: 3,
  },
  {
    id: "cand_009",
    name: "Manop Sirikul",
    initials: "MS",
    avatarColor: "#C7D2FE",
    email: "manop.s@****.com",
    phone: "+66 8• ••• ••36",
    location: "Bangkok, Thailand",
    currentTitle: "Sales Manager",
    currentCompany: "SC Asset",
    yearsExperience: 9,
    salaryExpectation: "THB 160,000 / mo + commission",
    noticePeriod: "45 days",
    source: "Internal referral",
    appliedDate: "Apr 20, 2026",
    positionId: "pos_001",
    status: "AI screened",
    score: 79,
    recommendation: "Strong fit",
    subscores: { experience: 85, skills: 75, industry: 82, leadership: 78, kpi: 76, stability: 82 },
    riskFlags: 0,
  },
];

// Today's metrics
const DASH_STATS = {
  totalCandidates: 387,
  totalCandidatesDeltaKey: "weekly24",
  pendingReview: 23,
  pendingReviewDeltaKey: "awaitingHR",
  avgFitScore: 68,
  avgFitScoreDeltaKey: "vsLastMonth",
  shortlisted: 19,
  shortlistedDeltaKey: "across12",
};

// Recent activity feed
const ACTIVITY = [
  { id: 1, who: "AI", what: "screened 8 new resumes", target: "Senior Property Sales Consultant", when: "12 min ago", kind: "ai" },
  { id: 2, who: "Aporn S.", what: "shortlisted", target: "Suthida Charoenwong", when: "1 hr ago", kind: "human" },
  { id: 3, who: "AI", what: "flagged 1 candidate as not recommended", target: "Bordin Wattanachai", when: "1 hr ago", kind: "ai" },
  { id: 4, who: "Niran K.", what: "added call notes for", target: "Krit Tanthaworn", when: "2 hr ago", kind: "human" },
  { id: 5, who: "AI", what: "completed batch upload (12 resumes)", target: "Marketing Manager", when: "3 hr ago", kind: "ai" },
  { id: 6, who: "Aporn S.", what: "overrode AI score for", target: "Apinya Ratchanon", when: "Yesterday", kind: "human" },
];

// Audit log events — last 30 days
const AUDIT_EVENTS = [
  // Today
  { id: "ev_201", ts: "2026-05-05 09:42", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "override",
    target: "Sarawut P. — Senior Sales Consultant",
    targetType: "candidate", positionId: "pos_001",
    before: "Strong fit (87)", after: "Potential fit (78)",
    reason: "GMV pro-rated below target — needs verification on call." },
  { id: "ev_202", ts: "2026-05-05 09:38", actor: "AI Sonnet 4.5", actorRole: "System", kind: "score",
    target: "Pichaya K. — Senior Sales Consultant",
    targetType: "candidate", positionId: "pos_001",
    after: "Score 79 · Strong fit", reason: null },
  { id: "ev_203", ts: "2026-05-05 09:38", actor: "AI Sonnet 4.5", actorRole: "System", kind: "score",
    target: "Theerapat W. — Senior Sales Consultant",
    targetType: "candidate", positionId: "pos_001",
    after: "Score 41 · Not recommended", reason: null },
  { id: "ev_204", ts: "2026-05-05 08:15", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "upload",
    target: "12 resumes — Senior Sales Consultant",
    targetType: "position", positionId: "pos_001",
    after: "12 candidates queued for screening", reason: null },
  { id: "ev_205", ts: "2026-05-05 07:50", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "login",
    target: "Workspace", targetType: "system", after: "Bangkok · Chrome", reason: null },

  // Yesterday
  { id: "ev_206", ts: "2026-05-04 17:22", actor: "Voraphan S.", actorRole: "Recruiter", kind: "stage",
    target: "Patcharin R. — Senior Sales Consultant",
    targetType: "candidate", positionId: "pos_001",
    before: "HR reviewed", after: "Call scheduled", reason: "Booked Tue 11:00 for screening call." },
  { id: "ev_207", ts: "2026-05-04 16:08", actor: "Thanakorn L.", actorRole: "Hiring manager", kind: "edit",
    target: "Project Director — Mixed-use",
    targetType: "position", positionId: "pos_002",
    before: "Must have: 8+ years",
    after: "Must have: 10+ years",
    reason: "Aligning with revised seniority bar." },
  { id: "ev_208", ts: "2026-05-04 15:55", actor: "AI Sonnet 4.5", actorRole: "System", kind: "rescore",
    target: "8 candidates — Project Director",
    targetType: "position", positionId: "pos_002",
    after: "Re-ranked after JD edit", reason: "Triggered by edit on requirements." },
  { id: "ev_209", ts: "2026-05-04 14:12", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "override",
    target: "Niran T. — Project Director",
    targetType: "candidate", positionId: "pos_002",
    before: "Weak fit (52)", after: "Potential fit (66)",
    reason: "Resume understated portfolio scale — confirmed THB 1.4B project on call." },
  { id: "ev_210", ts: "2026-05-04 11:30", actor: "Pichai B.", actorRole: "Viewer", kind: "export",
    target: "Candidates list — Senior Sales Consultant",
    targetType: "position", positionId: "pos_001",
    after: "CSV · 47 rows", reason: "Quarterly hiring review." },

  // 2 days ago
  { id: "ev_211", ts: "2026-05-03 18:01", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "consent",
    target: "Sarawut P.", targetType: "candidate", positionId: "pos_001",
    after: "Consent v2.1 recorded", reason: null },
  { id: "ev_212", ts: "2026-05-03 14:20", actor: "Mei-Lin C.", actorRole: "Hiring manager", kind: "stage",
    target: "Voraphat L. — Head of Leasing",
    targetType: "candidate", positionId: "pos_003",
    before: "Shortlisted", after: "Interviewed", reason: "Round 2 panel — moved forward." },
  { id: "ev_213", ts: "2026-05-03 09:15", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "create",
    target: "Marketing Lead — Residential",
    targetType: "position", positionId: "pos_004",
    after: "Position published · 1 opening", reason: null },

  // 3 days ago
  { id: "ev_214", ts: "2026-05-02 16:45", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "invite",
    target: "voraphan@initialestate.com", targetType: "user",
    after: "Role: Recruiter", reason: null },
  { id: "ev_215", ts: "2026-05-02 11:02", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "delete",
    target: "Spam application — Senior Sales Consultant",
    targetType: "candidate", positionId: "pos_001",
    after: "Removed (test submission)", reason: "Test entry — not a real candidate." },

  // Last week
  { id: "ev_216", ts: "2026-04-30 10:18", actor: "Thanakorn L.", actorRole: "Hiring manager", kind: "edit",
    target: "Senior Sales Consultant",
    targetType: "position", positionId: "pos_001",
    before: "KPI weight: 10%", after: "KPI weight: 15%",
    reason: "KPI alignment is the strongest signal — increasing weight." },
  { id: "ev_217", ts: "2026-04-29 15:30", actor: "AI Sonnet 4.5", actorRole: "System", kind: "rescore",
    target: "47 candidates — Senior Sales Consultant",
    targetType: "position", positionId: "pos_001",
    after: "Re-ranked after weight change", reason: null },
  { id: "ev_218", ts: "2026-04-28 09:00", actor: "Aporn S.", actorRole: "HR Recruiter", kind: "create",
    target: "Head of Leasing", targetType: "position", positionId: "pos_003",
    after: "Position published · 1 opening", reason: null },
];

// === Today's action queue ===
// Each action ties to a real candidate. The recruiter answers
// "Who should I contact today, why, and what is the next action?"
const TODAY_ACTIONS = [
  // 🔴 Time-sensitive — today
  {
    id: "act_001", urgency: "now", kind: "scheduledCall",
    candidateId: "cand_005", positionId: "pos_001",
    when: "11:00", whenLabel: "in 1h 25min",
    title: "Screening call — Krit Tanthaworn",
    why: "You scheduled this call yesterday. Krit confirmed by email this morning.",
    primaryAction: "callNow",
    secondaryActions: ["reschedule", "openProfile"],
    pinned: true,
  },
  {
    id: "act_002", urgency: "now", kind: "interviewToday",
    candidateId: "cand_007", positionId: "pos_001",
    when: "14:30", whenLabel: "this afternoon",
    title: "Panel interview — Suthida Charoenwong",
    why: "Round 2 with Khun Thanakorn and Khun Mei-Lin. Brief them on the GMV question.",
    primaryAction: "openPrep",
    secondaryActions: ["sendBrief", "reschedule"],
  },
  {
    id: "act_003", urgency: "now", kind: "replied",
    candidateId: "cand_002", positionId: "pos_001",
    when: "08:42", whenLabel: "2h ago",
    title: "Pim Suriyakul replied",
    why: '"Yes, I\'m interested. Tuesday or Wednesday afternoon both work for me."',
    primaryAction: "scheduleCall",
    secondaryActions: ["reply", "openProfile"],
  },

  // 🟠 High-priority — strong fits awaiting review
  {
    id: "act_004", urgency: "high", kind: "topFitNew",
    candidateId: "cand_001", positionId: "pos_001",
    when: null, whenLabel: "AI screened this morning",
    title: "Somchai Phongchai — score 87",
    why: "Strongest new fit for Senior Sales Consultant. THB 240M closed last 24mo, RERA license verified.",
    primaryAction: "review",
    secondaryActions: ["reachOut", "skip"],
  },
  {
    id: "act_005", urgency: "high", kind: "topFitNew",
    candidateId: "cand_009", positionId: "pos_001",
    when: null, whenLabel: "AI screened this morning",
    title: "Manop Sirikul — score 79",
    why: "Internal referral from N. Wattana. Strong leadership signal, KPIs match closely.",
    primaryAction: "review",
    secondaryActions: ["reachOut", "skip"],
  },

  // 🟡 Stale — candidates waiting on you
  {
    id: "act_006", urgency: "stale", kind: "noResponse",
    candidateId: "cand_004", positionId: "pos_001",
    when: null, whenLabel: "5 days no reply",
    title: "Apinya Ratchanon — follow-up overdue",
    why: "You sent the introductory message 5 days ago. No response yet. Last touch: Apr 30.",
    primaryAction: "sendNudge",
    secondaryActions: ["markCold", "openProfile"],
  },
  {
    id: "act_007", urgency: "stale", kind: "shortlistDecision",
    candidateId: "cand_003", positionId: "pos_001",
    when: null, whenLabel: "decision needed",
    title: "Watcharin Boonprasert — shortlist or pass?",
    why: "Score 71 (Potential fit). Has been in HR review for 4 days. Khun Thanakorn asked for your call.",
    primaryAction: "shortlist",
    secondaryActions: ["pass", "openProfile"],
  },

  // 🟢 Good news — caught up actions
  {
    id: "act_008", urgency: "info", kind: "consentExpiring",
    candidateId: "cand_006", positionId: "pos_001",
    when: null, whenLabel: "expires in 3 days",
    title: "Niran Vongchai — PDPA consent expiring",
    why: "Original consent given 11 months ago. Send renewal request to keep this candidate on file.",
    primaryAction: "sendRenewal",
    secondaryActions: ["archive"],
  },
];

window.MOCK = { POSITIONS, CANDIDATES, DASH_STATS, ACTIVITY, AUDIT_EVENTS, TODAY_ACTIONS };
