// Mock data for conversations
// Customer scenario: Athlete to Athlete — youth sports mentoring marketplace.
// Match coordinators (Andrew Wallace, Priya Shah) pair college/pro athletes
// (mentors) with younger athletes (mentees) for intro calls + recurring sessions.
// Source: omnichannel_dummy_conversations CSV (CONV-1001..CONV-1010).
//
// People in this dataset are LEADS or PEER AGENTS — no executives.
//   • Andrew Wallace — Lead Match Coordinator (handles most matches)
//   • Priya Shah    — Match Coordinator (peer agent, escalation cases)

// "Today" in this prototype is treated as 5/2/2026, the most recent timestamp
// in the CSV. Anything from 5/1 → "Yesterday"; earlier dates → explicit labels.

const THREADS = [
  {
    // CONV-1010 — Mia Okafor: just had a great intro call with Zara, wants to
    // continue. Most-recent activity → top of inbox, unread tail-reply.
    id: "t_mia", name: "Mia Okafor", phone: "+1 (646) 555-2287", avatar: "MO", color: "#F79009",
    channel: "sms", line: "Mentor Ops — US", tags: ["High-rebook"], showTags: true,
    preview: "Just submitted - Zara was awesome. Would love to keep working with her.",
    time: "12m", unread: 2, assignee: { name: "Priya Shah", id: "u_priya" },
    status: "open", isContact: true, pinned: true,
    company: "Mentor · Track & Field", timezone: "America/New_York"
  },
  {
    // CONV-1007 — Marcus Webb (Parent): URGENT broken meet link mid-call.
    // Resolved but the urgency = unread count + churn-risk-style signal.
    id: "t_marcus", name: "Marcus Webb (Parent)", phone: "+1 (303) 555-2219", avatar: "MW", color: "#D92D20",
    channel: "call", line: "Support — US", tags: ["Urgent"], showTags: true,
    preview: "Inbound voicemail · 00:38 — broken meet link before intro call",
    type: "missed",
    time: "32m", unread: 1, assignee: { name: "Priya Shah", id: "u_priya" },
    status: "open", isContact: true,
    company: "Parent of Hannah Webb (mentee · Soccer)", timezone: "America/Denver"
  },
  {
    // CONV-1003 — Landon Pierce: re-engagement worked, mentee booked. Inbound
    // confirmation pending agent action.
    id: "t_landon", name: "Landon Pierce", phone: "+1 (925) 808-8311", avatar: "LP", color: "#7A5AF8",
    channel: "sms", line: "Mentor Ops — US", tags: ["Football", "Re-engaged"], showTags: true,
    preview: "Yes! Please book it.",
    time: "1h", unread: 1, assignee: { name: "Priya Shah", id: "u_priya" },
    status: "open", isContact: true,
    company: "Mentor · Football (QB)", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1001 — Tyler Brooks: onboarding walkthrough completed, mentor ready.
    id: "t_tyler", name: "Tyler Brooks", phone: "+1 (415) 555-0118", avatar: "TB", color: "#12B76A",
    channel: "call", line: "Mentor Ops — US", tags: ["Onboarding"],
    preview: "Outbound call · 12:22 — onboarding walkthrough complete",
    type: "outbound",
    time: "2h", unread: 0, assignee: { name: "Andrew Wallace", id: "u_andrew" },
    status: "open", isContact: true,
    company: "Mentor · Football (WR)", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1002 — Sofia Ramirez: rescheduled intro call to Tue 5/5.
    id: "t_sofia", name: "Sofia Ramirez", phone: "+1 (310) 555-0247", avatar: "SR", color: "#004CE6",
    channel: "sms", line: "Mentor Ops — US", tags: ["Reschedule"],
    preview: "All set Sofia! Updated to Tue 5/5 at 6pm ET. New link: https://meet.google.com/lkm-trvb-pqo",
    time: "Yesterday", unread: 0, assignee: { name: "Andrew Wallace", id: "u_andrew" },
    status: "open", isContact: true,
    company: "Mentor · Soccer", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1008 — Jared Lin: completed session, asking about payouts +
    // converting Owen to recurring sessions.
    id: "t_jared", name: "Jared Lin", phone: "+1 (213) 445-0091", avatar: "JL", color: "#EE46BC",
    channel: "sms", line: "Mentor Ops — US", tags: ["Recurring"],
    preview: "Yes! I'll send the parent a recurring booking link tonight.",
    time: "Yesterday", unread: 0, assignee: { name: "Andrew Wallace", id: "u_andrew" },
    status: "open", isContact: true,
    company: "Mentor · Basketball", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1004 — Dominic Hayes: rebooked after parent reschedule, reminders sent.
    id: "t_dominic", name: "Dominic Hayes", phone: "+1 (408) 599-4096", avatar: "DH", color: "#0BA5EC",
    channel: "sms", line: "Mentor Ops — US", tags: [],
    preview: "2 hour reminder - your call with Aron is at 9:30pm ET tonight.",
    time: "3d", unread: 0, assignee: { name: "Andrew Wallace", id: "u_andrew" },
    status: "open", isContact: true,
    company: "Mentor · Baseball", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1005 — Jenna Whitfield (Parent): missing-mentor-assignment recovery,
    // resolved with personal callback. Closed-loop satisfaction.
    id: "t_jenna", name: "Jenna Whitfield (Parent)", phone: "+1 (202) 867-5309", avatar: "JW", color: "#7A5AF8",
    channel: "sms", line: "Support — US", tags: ["Recovery"],
    preview: "Thank you so much Priya - really appreciate the personal call.",
    time: "3d", unread: 0, assignee: { name: "Priya Shah", id: "u_priya" },
    status: "open", isContact: true,
    company: "Parent of Eli Whitfield (mentee · Baseball)", timezone: "America/New_York"
  },
  {
    // CONV-1006 — Aaliyah Coleman: pausing for college season. Closed.
    id: "t_aaliyah", name: "Aaliyah Coleman", phone: "+1 (702) 555-1472", avatar: "AC", color: "#12B76A",
    channel: "sms", line: "Mentor Ops — US", tags: ["Paused"],
    preview: "Liked \"Totally understood Aaliyah - good luck with your season!\"",
    time: "7d", unread: 0, assignee: { name: "Andrew Wallace", id: "u_andrew" },
    status: "closed", isContact: true,
    company: "Mentor · Volleyball", timezone: "America/Los_Angeles"
  },
  {
    // CONV-1009 — Unknown wrong-number / STOP. Auto-suppressed and closed.
    id: "t_unknown", name: "Unknown", phone: "+1 (888) 555-0000", avatar: "UN", color: "#98A2B3",
    channel: "sms", line: "Default Ring Group", tags: [],
    preview: "Closed - confirmed wrong number. No further action.",
    time: "3d", unread: 0, assignee: { name: "Priya Shah", id: "u_priya" },
    status: "closed", isContact: false, timezone: "America/Chicago"
  }
];

// ----- Per-thread message timeline ----------------------------------------
// Hand-built from the CSV so the conversation reads like the real export.
// Each thread gets explicit kind/dir/text/time + an upper "date" divider.
//
// Rules of thumb for date labels (anchor "today" at 5/2/2026):
//   2026-04-22 → "Apr 22"
//   2026-04-23 → "Apr 23"
//   2026-04-25 → "Apr 25"
//   2026-04-26 → "Apr 26"
//   2026-04-27 → "Apr 27"
//   2026-04-28 → "Apr 28"
//   2026-04-29 → "3 days ago"
//   2026-04-30 → "2 days ago"
//   2026-05-01 → "Yesterday"
//   2026-05-02 → "Today"

// Helper — convert seconds to mm:ss
const _dur = (s) => {
  const n = parseInt(s, 10) || 0;
  const m = Math.floor(n / 60);
  const r = n % 60;
  return `${String(m).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
};

const THREAD_MESSAGES = {};

// CONV-1001 Tyler Brooks
THREAD_MESSAGES["t_tyler"] = [
  { kind: "date", label: "Apr 28" },
  { kind: "sms", dir: "out", time: "3:02 pm", author: "Andrew Wallace",
    text: "Hey Tyler! This is Andrew with Athlete to Athlete. We have a few Football athletes looking for Mentors right now that you'd match up great with. If you're open to working with them, please submit your availability for the next 2 weeks: https://athletetoathlete.com/mentor/availability?athleteId=812455" },
  { kind: "sms", dir: "in",  time: "4:48 pm", author: "Tyler Brooks",
    text: "Hey Andrew, just submitted! Open to taking on 2 mentees right now." },
  { kind: "note", time: "4:55 pm", author: "Andrew Wallace",
    text: "Tyler is a former D1 WR, very high response rate. Prioritize for any 13-16 yr old WR/DB matches." },
  { kind: "sms", dir: "out", time: "4:58 pm", author: "Andrew Wallace",
    text: "Awesome, thanks Tyler! I'll get you paired and confirm a call shortly." },
  { kind: "date", label: "Apr 29" },
  { kind: "sms", dir: "out", time: "7:10 pm", author: "Andrew Wallace",
    text: "Hey Tyler, I'm excited to share we've booked you on an intro call with an Athlete named Marcus for 5/2/2026! Marcus is 14 and competes in your same sport. Their parent mentioned Confidence, Route Running, Mental Toughness as what they're looking to work on. (call id: 814221)" },
  { kind: "date", label: "2 days ago" },
  { kind: "call", dir: "out", status: "completed", duration: _dur(742),
    author: "Andrew Wallace", time: "6:30 pm",
    summary: "Onboarding walkthrough call - covered platform features, payout cycle, expectations for first session." },
];

// CONV-1002 Sofia Ramirez
THREAD_MESSAGES["t_sofia"] = [
  { kind: "date", label: "2 days ago" },
  { kind: "sms", dir: "out", time: "10:14 pm", author: "Andrew Wallace",
    text: "Hey Sofia, I'm excited to share we've booked you on an intro call with an Athlete named Liam for 5/4/2026! Liam is 11 and competes in your same sport. Parent mentioned Footwork, Confidence, First-Touch as focus areas. (call id: 815901)" },
  { kind: "sms", dir: "out", time: "10:14 pm", author: "Andrew Wallace",
    text: "Call Date: 5/4/2026\n\nCall Time by Time Zone:\n6:00 PM Eastern (N.Y.)\n5:00 PM Central (Chicago)\n4:00 PM Mountain (Denver)\n3:00 PM Pacific (L.A.)\n\nClick this link at the time of the call to join: https://meet.google.com/xqz-wvbn-fge" },
  { kind: "date", label: "Yesterday" },
  { kind: "sms", dir: "in",  time: "1:22 am", author: "Sofia Ramirez",
    text: "Hey Andrew, I have a club practice run late on Mondays. Any chance we move to Tuesday same time?" },
  { kind: "call", dir: "in", status: "missed", duration: _dur(0),
    author: "Sofia Ramirez", time: "3:40 pm" },
  { kind: "call", dir: "out", status: "completed", duration: _dur(184),
    author: "Andrew Wallace", time: "4:05 pm",
    summary: "Returned call - confirmed reschedule to Tue 5/5 6pm ET. Sofia happy with new time, will message parent." },
  { kind: "note", time: "4:09 pm", author: "Andrew Wallace",
    text: "Reschedule confirmed with parent (Maria). New Google Meet link sent. Mark old slot as cancelled in scheduler." },
  { kind: "sms", dir: "out", time: "4:11 pm", author: "Andrew Wallace",
    text: "All set Sofia! Updated to Tue 5/5 at 6pm ET. New link: https://meet.google.com/lkm-trvb-pqo" },
];

// CONV-1003 Landon Pierce
THREAD_MESSAGES["t_landon"] = [
  { kind: "date", label: "Apr 22" },
  { kind: "sms", dir: "out", time: "10:32 pm", author: "Andrew Wallace",
    text: "Hi Landon! I'm really sorry but it looks like we weren't able to confirm a time with a Football athlete for an Intro Call when you last submitted your availability. While we don't have a high volume of Football athletes signing up right now, would it be alright if I reached back out to continue pairing you once we do?" },
  { kind: "date", label: "Apr 23" },
  { kind: "sms", dir: "in",  time: "12:28 am", author: "Landon Pierce",
    text: "Yes, that works. Appreciate the heads up." },
  { kind: "sms", dir: "out", time: "12:30 am", author: "Andrew Wallace",
    text: "Thank you, Landon!" },
  { kind: "note", time: "12:31 am", author: "Andrew Wallace",
    text: "Add Landon to the Football priority queue. Tag: high-availability, position=QB. Re-engage when we get more QB-focused mentees." },
  { kind: "event", event: "closed", actor: "Andrew Wallace", at: "Apr 23, 2026 12:33 AM" },
  { kind: "event", event: "campaign", campaign: "Q3 winback", at: "Apr 23, 2026 9:05 AM" },
  { kind: "date", label: "Yesterday" },
  { kind: "event", event: "reopened", actor: "Andrew Wallace", at: "Apr 29, 2026 11:57 PM" },
  { kind: "sms", dir: "out", time: "11:59 pm", author: "Andrew Wallace",
    text: "Hi Landon! I have a mentee who would love to meet with you on Monday, 5/4 at 5:30pm Pacific. Are you available?" },
  { kind: "date", label: "Today" },
  { kind: "sms", dir: "in",  time: "12:14 am", author: "Landon Pierce",
    text: "Yes! Please book it." },
];

// CONV-1004 Dominic Hayes
THREAD_MESSAGES["t_dominic"] = [
  { kind: "date", label: "Apr 22" },
  { kind: "sms", dir: "out", time: "7:24 pm", author: "Andrew Wallace",
    text: "Hey Dominic, I'm excited to share we've booked you on an intro call with an Athlete named Jaxon for 4/27/2026! Jaxon is 10 and competes in your same sport. Parent mentioned Confidence, Fitness/Athleticism, Mental Toughness, Work Ethic. (call id: 693144)" },
  { kind: "date", label: "Apr 26" },
  { kind: "sms", dir: "out", time: "5:15 pm", author: "Andrew Wallace",
    text: "Hey Dominic, I wanted to let you know that Jaxon's parents just asked to reschedule the call. We're working to find a new time and I will be in touch as soon as we reschedule. My apologies for the mix up!" },
  { kind: "sms", dir: "in",  time: "5:42 pm", author: "Dominic Hayes",
    text: "No worries, just let me know." },
  { kind: "date", label: "Apr 27" },
  { kind: "sms", dir: "out", time: "12:10 am", author: "Andrew Wallace",
    text: "Hey Dominic, I'm excited to share we've booked you on an intro call with an Athlete named Aron for 4/29/2026! Aron is 12 and competes in your same sport. Parent mentioned Fitness and Athleticism, Focus and Mental Toughness, Discipline and Work Ethic. (call id: 696138)" },
  { kind: "date", label: "Apr 28" },
  { kind: "call", dir: "in", status: "completed", duration: _dur(92),
    author: "Andrew Wallace", time: "7:20 pm",
    summary: "Mentor called in to confirm intro-call time zone. Confirmed 9:30 PM ET / 6:30 PM PT." },
  { kind: "note", time: "7:24 pm", author: "Andrew Wallace",
    text: "Dominic prefers calls confirmed via SMS not just email. Added preference to CRM." },
  { kind: "sms", dir: "out", time: "10:00 pm", author: "Andrew Wallace",
    text: "Hey Dominic, this is a friendly 24 hour reminder about your Intro Call with Aron tomorrow!" },
  { kind: "date", label: "3 days ago" },
  { kind: "sms", dir: "out", time: "7:30 pm", author: "Andrew Wallace",
    text: "2 hour reminder - your call with Aron is at 9:30pm ET tonight." },
];

// CONV-1005 Jenna Whitfield (Parent)
THREAD_MESSAGES["t_jenna"] = [
  { kind: "date", label: "3 days ago" },
  { kind: "sms", dir: "in",  time: "1:11 pm", author: "Jenna Whitfield",
    text: "Hi - I signed my son Eli up last week for baseball mentoring. Just checking on the status, haven't heard anything yet." },
  { kind: "event", event: "assigned", actor: "Priya Shah", at: "Apr 27, 2026 1:14 PM" },
  { kind: "note", time: "1:18 pm", author: "Priya Shah",
    text: "Looked up Eli Whitfield in CRM - signup completed 4/22, payment processed, but no mentor assignment triggered. Bug? Check with Ops." },
  { kind: "sms", dir: "out", time: "1:21 pm", author: "Priya Shah",
    text: "Hi Jenna! Thanks for reaching out - I'm Priya from the matching team. I see Eli's profile and I'm sorting out why a mentor wasn't auto-assigned. Will get back to you within a few hours with a confirmed match." },
  // Transferred: Andrew picked up on Support, handed to Priya on Mentor Ops.
  // The two numbers are separate records, hence the two lines on the card.
  { kind: "call", dir: "out", status: "transferred", duration: _dur(421),
    author: "Andrew Wallace", transferTo: "Priya Shah", time: "5:42 pm",
    lines: ["Support — US", "Mentor Ops — US"],
    summary: "Called parent to apologize for delay and confirmed mentor (Cole Banner). Walked through Google Meet link, prep guide, and what to expect. Parent very satisfied." },
  { kind: "sms", dir: "out", time: "5:50 pm", author: "Priya Shah",
    text: "Confirmation: Eli is paired with Cole Banner (former NCAA D1 catcher). Intro call: 5/3/2026 at 4pm ET. Link: https://meet.google.com/abc-defg-hij" },
  { kind: "sms", dir: "in",  time: "6:02 pm", author: "Jenna Whitfield",
    text: "Thank you so much Priya - really appreciate the personal call." },
  { kind: "sms", dir: "out", time: "6:05 pm", author: "Priya Shah",
    text: "You're so welcome. I'll email Cole's intro packet tonight - 5 min read so Eli knows exactly what to expect on Sunday." },
  { kind: "sms", dir: "in",  time: "6:08 pm", author: "Jenna Whitfield",
    text: "Perfect. Does Eli need anything specific - glove, notebook, batting tee?" },
  { kind: "sms", dir: "out", time: "6:10 pm", author: "Priya Shah",
    text: "Just a notebook (or notes app), comfy clothes, and decent lighting. Cole will cover catching fundamentals + send drills Eli can work on between sessions." },
  { kind: "sms", dir: "in",  time: "6:12 pm", author: "Jenna Whitfield",
    text: "Got it. He's pumped - keeps asking when the call is." },
  { kind: "date", label: "2 days ago" },
  { kind: "event", event: "campaign", campaign: "Onboarding nudge", at: "Apr 28, 2026 8:30 AM" },
  { kind: "sms", dir: "out", time: "9:14 am", author: "Priya Shah", channel: "whatsapp",
    text: "Morning Jenna! Sharing Cole's intro packet over WhatsApp too since you mentioned that's easier than email. Same content - just lighter to skim on mobile." },
  { kind: "sms", dir: "in",  time: "9:42 am", author: "Jenna Whitfield", channel: "whatsapp",
    text: "Thanks, way easier on here. Eli has a question about Cole's college team - okay to bring it up on the call?" },
  { kind: "sms", dir: "out", time: "9:45 am", author: "Priya Shah", channel: "whatsapp",
    text: "Absolutely - Cole loves those questions. Tell Eli to bring anything else he's curious about too." },
  { kind: "date", label: "Yesterday" },
  { kind: "call", dir: "in", status: "missed", duration: _dur(42),
    author: "Jenna Whitfield", time: "10:42 am",
    voicemail: "Hey Priya, quick question about Sunday's call - Eli's grandparents are in town and they'd love to watch. Wanted to check if that's okay or if we should keep it just Eli and me. Give me a call when you can, thanks!" },
  { kind: "call", dir: "out", status: "completed", duration: _dur(184),
    author: "Priya Shah", time: "11:08 am",
    summary: "Returned Jenna's call - confirmed Cole is comfortable with family observing. Suggested grandparents stay off-camera so Eli stays the focus. Jenna grateful and locked in for Sunday." },
  { kind: "sms", dir: "out", time: "11:10 am", author: "Priya Shah", channel: "whatsapp",
    text: "Quick recap from the call: Cole is totally fine with family observing - just have the grandparents off-camera if possible so Eli stays focused. Looking forward to Sunday!" },
  { kind: "sms", dir: "in",  time: "11:11 am", author: "Jenna Whitfield", channel: "whatsapp",
    text: "Perfect, thank you!" },
  { kind: "date", label: "Today" },
  { kind: "sms", dir: "out", time: "10:15 am", author: "Priya Shah", channel: "whatsapp",
    text: "Quick reminder - intro call tomorrow (Sun 5/3) at 4pm ET. Same Meet link as before: https://meet.google.com/abc-defg-hij" },
  { kind: "sms", dir: "in",  time: "10:22 am", author: "Jenna Whitfield", channel: "whatsapp",
    text: "On the calendar. We'll be on 5 min early." },
  { kind: "sms", dir: "out", time: "10:25 am", author: "Priya Shah", channel: "whatsapp",
    text: "Perfect. I'll be on standby Sunday if anything pops up. Have a great weekend!" },
];

// CONV-1006 Aaliyah Coleman
THREAD_MESSAGES["t_aaliyah"] = [
  { kind: "date", label: "Apr 25" },
  { kind: "sms", dir: "out", time: "5:00 pm", author: "Andrew Wallace",
    text: "Hey Aaliyah! It's been a while since you submitted availability. We have 2 Volleyball mentees waiting - any chance you can submit a few slots this week? https://athletetoathlete.com/mentor/availability?athleteId=441290" },
  { kind: "sms", dir: "in",  time: "8:14 pm", author: "Aaliyah Coleman",
    text: "Hey Andrew - I actually need to step back from mentoring for a bit. Starting season with my college team next month and won't have time. Sorry!" },
  { kind: "note", time: "8:18 pm", author: "Andrew Wallace",
    text: "Mark Aaliyah as 'paused' through 9/1/2026. Re-engage in late August. Don't remove from active mentor list - she's high quality." },
  { kind: "sms", dir: "out", time: "8:20 pm", author: "Andrew Wallace",
    text: "Totally understood Aaliyah - good luck with your season! I'll pause your account and reach back out in late August. Thanks for letting me know." },
  { kind: "sms", dir: "in",  time: "8:21 pm", author: "Aaliyah Coleman",
    text: "Liked \"Totally understood Aaliyah - good luck with your season!\"" },
];

// CONV-1007 Marcus Webb (Parent) — urgent meet-link issue
THREAD_MESSAGES["t_marcus"] = [
  { kind: "date", label: "2 days ago" },
  { kind: "call", dir: "in", status: "missed", duration: _dur(38),
    author: "Marcus Webb", time: "7:32 pm",
    voicemail: "Hi this is Marcus, my daughter's intro call is supposed to be in 30 minutes but the meet link isn't working. Can someone call me back ASAP. Thanks." },
  { kind: "event", event: "assigned", actor: "Priya Shah", at: "Apr 28, 2026 7:33 PM" },
  { kind: "note", time: "7:34 pm", author: "Priya Shah",
    text: "URGENT - parent reports broken Meet link. Pulled up call id 819004. Link looks valid - might be parent's browser. Calling back now." },
  { kind: "call", dir: "out", status: "completed", duration: _dur(238),
    author: "Priya Shah", time: "7:36 pm",
    summary: "Returned call - link was fine, parent was clicking an old link from a previous reschedule email. Walked them through finding the latest SMS link. Call now in progress." },
  { kind: "sms", dir: "out", time: "7:36 pm", author: "Priya Shah",
    text: "Here's the correct meet link for Hannah's call right now: https://meet.google.com/zxy-pqrs-tuv" },
  { kind: "sms", dir: "in",  time: "7:38 pm", author: "Marcus Webb",
    text: "In! Thank you so much." },
  { kind: "event", event: "campaign", campaign: "Spring workshop reactivation", at: "Apr 28, 2026 7:41 PM" },
  { kind: "note", time: "7:55 pm", author: "Priya Shah",
    text: "Follow up with Eng - reschedule emails should suppress old Meet links to prevent confusion. Filed ticket ENG-2241." },
];

// CONV-1008 Jared Lin
THREAD_MESSAGES["t_jared"] = [
  { kind: "date", label: "2 days ago" },
  { kind: "sms", dir: "in",  time: "10:14 pm", author: "Jared Lin",
    text: "Hey - just wrapped my call with Owen, went really well. Quick question, when does payout hit for last week's sessions?" },
  { kind: "sms", dir: "out", time: "10:18 pm", author: "Andrew Wallace",
    text: "Awesome to hear Jared! Payouts run every Friday for the prior week's completed sessions. Last week's payout went out this morning - should hit your account by EOD tomorrow." },
  { kind: "sms", dir: "in",  time: "10:21 pm", author: "Jared Lin",
    text: "Perfect, thanks! Also want to flag - Owen's parent mentioned they want to do weekly recurring sessions. Should I coordinate that with you?" },
  { kind: "note", time: "10:24 pm", author: "Andrew Wallace",
    text: "Convert Owen + Jared to recurring plan - parent already on board. Send recurring booking link from Stripe." },
  { kind: "sms", dir: "out", time: "10:26 pm", author: "Andrew Wallace",
    text: "Yes! I'll send the parent a recurring booking link tonight. You'll see Owen on your weekly calendar going forward." },
];

// CONV-1009 Unknown / STOP
THREAD_MESSAGES["t_unknown"] = [
  { kind: "date", label: "3 days ago" },
  { kind: "sms", dir: "in",  time: "11:02 am", author: "Unknown",
    text: "STOP" },
  { kind: "note", time: "11:02 am", author: "System",
    text: "Number not in our CRM - never been outbound to. Likely user typed wrong number when subscribing somewhere. Auto-suppressed." },
  { kind: "sms", dir: "out", time: "11:02 am", author: "System",
    text: "You have been unsubscribed from Athlete to Athlete. Reply START to resubscribe." },
  { kind: "sms", dir: "in",  time: "11:08 am", author: "Unknown",
    text: "Wait what is this? I don't remember signing up for anything" },
  { kind: "sms", dir: "out", time: "11:35 am", author: "Priya Shah",
    text: "Hi - this is Athlete to Athlete, a youth sports mentoring platform. We have no record of outreach to your number. You may have been added in error. You're now unsubscribed and won't receive further messages." },
  { kind: "note", time: "11:36 am", author: "Priya Shah",
    text: "Closed - confirmed wrong number. No further action." },
  { kind: "event", event: "unassigned", at: "Apr 27, 2026 11:37 AM" },
  { kind: "event", event: "closed", actor: "Priya Shah", at: "Apr 27, 2026 11:38 AM" },
];

// CONV-1010 Mia Okafor
THREAD_MESSAGES["t_mia"] = [
  { kind: "date", label: "2 days ago" },
  { kind: "sms", dir: "out", time: "4:22 pm", author: "Andrew Wallace",
    text: "Hey Mia, I'm excited to share we've booked you on an intro call with an Athlete named Zara for 5/2/2026! Zara is 13 and competes in your same sport (Track). Parent mentioned Sprint Mechanics, Race Day Confidence as focus areas. (call id: 822145)" },
  { kind: "sms", dir: "out", time: "4:22 pm", author: "Andrew Wallace",
    text: "Call Date: 5/2/2026\n\n5:00 PM Eastern\n4:00 PM Central\n3:00 PM Mountain\n2:00 PM Pacific\n\nJoin link: https://meet.google.com/trk-mzbn-spr" },
  { kind: "sms", dir: "in",  time: "4:35 pm", author: "Mia Okafor",
    text: "Got it, looking forward to it!" },
  { kind: "event", event: "assigned", actor: "Andrew Wallace", at: "Apr 28, 2026 4:38 PM" },
  { kind: "date", label: "Yesterday" },
  { kind: "sms", dir: "out", time: "5:00 pm", author: "Andrew Wallace",
    text: "Hey Mia, friendly 24 hour reminder about your Intro Call with Zara tomorrow at 5pm ET!" },
  { kind: "date", label: "Today" },
  { kind: "sms", dir: "out", time: "3:00 pm", author: "Andrew Wallace",
    text: "2 hour reminder - your call with Zara is at 5pm ET today. Link: https://meet.google.com/trk-mzbn-spr" },
  { kind: "sms", dir: "out", time: "4:40 pm", author: "Andrew Wallace",
    text: "20 minute reminder - jump in here when you're ready: https://meet.google.com/trk-mzbn-spr" },
  { kind: "call", dir: "out", status: "completed", duration: _dur(1683),
    author: "System", time: "5:00 pm",
    summary: "Intro call between Mia and Zara (system-recorded for QA). Call lasted 28 minutes. Both engaged, parent observed. Strong match." },
  { kind: "sms", dir: "out", time: "5:32 pm", author: "Andrew Wallace",
    text: "Hey Mia, congrats on a great intro call! Please rate the session here: https://athletetoathlete.com/feedback/822145" },
  { kind: "sms", dir: "in",  time: "6:14 pm", author: "Mia Okafor",
    text: "Just submitted - Zara was awesome. Would love to keep working with her." },
  { kind: "note", time: "6:18 pm", author: "Andrew Wallace",
    text: "Strong session - both sides interested in continuing. Move to recurring conversion flow. Tag mentor 'high-rebook-likelihood'." },
  { kind: "sms", dir: "out", time: "6:20 pm", author: "Andrew Wallace",
    text: "Amazing! I'll loop in Zara's parent about setting up recurring sessions with you. Stand by!" },
  { kind: "sms", dir: "in",  time: "6:24 pm", author: "Mia Okafor",
    text: "Awesome - she's super coachable. I'd be down for weekly while school is in session." },
  { kind: "call", dir: "out", status: "completed", duration: _dur(248),
    author: "Andrew Wallace", time: "6:30 pm",
    summary: "Quick call with Mia to align on recurring cadence. Locked Wednesdays 5pm ET starting 5/13. Mia prefers WhatsApp for ongoing comms - migrating thread going forward." },
  { kind: "sms", dir: "out", time: "6:38 pm", author: "Andrew Wallace", channel: "whatsapp",
    text: "Bringing the convo over to WhatsApp as we discussed. Confirming with Zara's parent now and I'll loop back with a calendar invite." },
  { kind: "sms", dir: "in",  time: "6:42 pm", author: "Mia Okafor", channel: "whatsapp",
    text: "Sounds good, thanks Andrew" },
  { kind: "sms", dir: "out", time: "7:02 pm", author: "Andrew Wallace", channel: "whatsapp",
    text: "Locked in with Zara's parent - Wednesdays at 5pm ET, starting 5/13. Calendar invites + Meet links will go out every Tuesday morning." },
  { kind: "sms", dir: "in",  time: "7:05 pm", author: "Mia Okafor", channel: "whatsapp",
    text: "Awesome, thank you!" },
  { kind: "sms", dir: "in",  time: "7:06 pm", author: "Mia Okafor", channel: "whatsapp",
    text: "One question - prep look the same for recurring as it did for intro, or different?" },
  { kind: "sms", dir: "out", time: "7:11 pm", author: "Andrew Wallace", channel: "whatsapp",
    text: "Slightly different - we send a 2-question recap from Zara's parent each Tuesday so you can tailor each session. I'll forward this week's once it lands." },
  { kind: "sms", dir: "in",  time: "7:12 pm", author: "Mia Okafor", channel: "whatsapp",
    text: "Perfect, thanks" },
];

// ----- Automated sends ------------------------------------------------------
// Every conversation carries one workflow-sent and one campaign-sent message so
// the source-tagged bubble is visible without having to trigger an automation.
// (Scheduled — the third source — comes out of the composer's Send > Schedule.)
//
// `at` is the offset from the end of the thread: the pair is spliced in ahead
// of that many trailing entries, which keeps each thread's last message — and
// so every inbox row's preview — exactly as it was. Times sit in the gap
// before whatever follows them. `idx` overrides it with an absolute position,
// for the one thread where the automation belongs at the top.
const _AUTOMATED = {
  t_tyler: { at: 1, msgs: [
    { time: "6:12 pm", author: "Andrew Wallace",
      source: { type: "workflow", name: "Mentor onboarding — day 1" },
      text: "You're all set up, Tyler. Your mentor profile is live, and you'll get a text the moment a Football match comes through. Payouts run every Friday." },
    { time: "6:20 pm", author: "Andrew Wallace",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  t_sofia: { at: 1, msgs: [
    { time: "4:09 pm", author: "Andrew Wallace",
      source: { type: "workflow", name: "Reschedule confirmation" },
      text: "Your intro call with Liam has moved to Tue 5 May, 6:00 pm ET. A fresh calendar invite and Meet link are on their way." },
    { time: "4:10 pm", author: "Andrew Wallace",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  t_landon: { at: 1, msgs: [
    { time: "12:02 am", author: "Andrew Wallace",
      source: { type: "workflow", name: "Availability request — biweekly" },
      text: "Quick one, Landon: we're pairing Football athletes for the next two weeks. Drop your availability here and we'll match you against it — https://athletetoathlete.com/mentor/availability" },
    { time: "12:08 am", author: "Andrew Wallace",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  t_dominic: { at: 1, msgs: [
    { time: "7:05 pm", author: "Andrew Wallace",
      source: { type: "workflow", name: "Session prep reminder" },
      text: "Session with Aron tonight. Nothing to prepare beyond the last recap — same Meet link as always." },
    { time: "7:18 pm", author: "Andrew Wallace",
      source: { type: "campaign", name: "Summer Intensive — early access" },
      text: "Early access to the Summer Intensive opens Monday. Mentors running weekly sessions can claim their blocks before the public list goes out. Reply STOP to opt out." },
  ]},
  t_jenna: { at: 1, msgs: [
    { time: "10:23 am", author: "Priya Shah", channel: "whatsapp",
      source: { type: "workflow", name: "Post-session rebook nudge" },
      text: "Hope Sunday's session went well. Ready to lock in the next one? Same slot is still open — https://athletetoathlete.com/book/recurring" },
    { time: "10:24 am", author: "Priya Shah", channel: "whatsapp",
      source: { type: "campaign", name: "Parent update — summer schedule" },
      text: "Summer schedules go live 20 May. Families already on a recurring plan keep their existing slot automatically — nothing to do. Reply STOP to opt out." },
  ]},
  t_aaliyah: { at: 3, msgs: [
    { time: "8:15 pm", author: "Andrew Wallace",
      source: { type: "workflow", name: "No-show follow-up" },
      text: "Looks like last week's session didn't go ahead. No problem — pick a new time whenever suits and we'll let the parent know." },
    { time: "8:16 pm", author: "Andrew Wallace",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  t_marcus: { at: 1, msgs: [
    { time: "7:44 pm", author: "Priya Shah",
      source: { type: "workflow", name: "Intro call reminder — 24h" },
      text: "Reminder: Hannah's intro call is tomorrow at 5:00 pm MT. The Meet link in this thread is the current one — the earlier link has been retired." },
    { time: "7:50 pm", author: "Priya Shah",
      source: { type: "campaign", name: "Parent update — summer schedule" },
      text: "Summer schedules go live 20 May. Families already on a recurring plan keep their existing slot automatically — nothing to do. Reply STOP to opt out." },
  ]},
  t_jared: { at: 2, msgs: [
    { time: "10:22 pm", author: "Andrew Wallace",
      source: { type: "workflow", name: "Payout summary — weekly" },
      text: "This week's payout is on the way: 3 sessions, released Friday. Full breakdown in your mentor dashboard." },
    { time: "10:23 pm", author: "Andrew Wallace",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  // The one thread whose automated pair belongs at the head rather than the
  // tail: an unsolicited nudge and a blast are what provoked the "STOP" it
  // opens on. `idx` places them just after the leading date divider.
  t_unknown: { idx: 1, msgs: [
    { time: "10:41 am", author: "System",
      source: { type: "workflow", name: "Re-engagement nudge — 30 day" },
      text: "It's been a while — still interested in mentoring with Athlete to Athlete? Reply YES and we'll pick things back up." },
    { time: "10:58 am", author: "System",
      source: { type: "campaign", name: "May mentor roster refresh" },
      text: "Summer Intensive slots open 20 May. Athletes already matched with a mentor get first pick of the schedule, including the small-group strength blocks. Reply STOP to opt out." },
  ]},
  t_mia: { at: 2, msgs: [
    { time: "7:07 pm", author: "Andrew Wallace", channel: "whatsapp",
      source: { type: "workflow", name: "Recurring booking confirmation" },
      text: "You're all set — Wednesdays at 5:00 pm ET, starting 13 May. Your first calendar invite and Meet link land Tuesday morning, and we'll send a nudge an hour before each session." },
    { time: "7:09 pm", author: "Andrew Wallace", channel: "whatsapp",
      source: { type: "campaign", name: "Summer Intensive — early access" },
      text: "Early access to the Summer Intensive opens Monday. Mentors running weekly sessions can claim their blocks before the public list goes out. Reply STOP to opt out." },
  ]},
};

Object.keys(_AUTOMATED).forEach((id) => {
  const list = THREAD_MESSAGES[id];
  if (!list) return;
  const { at, idx, msgs } = _AUTOMATED[id];
  const where = idx !== undefined ? idx : Math.max(0, list.length - at);
  list.splice(where, 0, ...msgs.map((m) => ({ kind: "sms", dir: "out", ...m })));
});

// Current users — peers/leads only, no executives.
// Both convo-admin (Andrew, Lead Match Coordinator) and convo-agent (Priya,
// Match Coordinator) are operational roles, not management.
const CURRENT_USERS = {
  admin: { name: "Andrew Wallace", role: "Lead Match Coordinator", initials: "AW", color: "#004CE6" },
  agent: { name: "Priya Shah",     role: "Match Coordinator",      initials: "PS", color: "#7A5AF8" }
};

// ----- Filler conversations -------------------------------------------------
// The ten hand-written threads above are the interesting ones, but the inbox
// needs volume to show scrolling, filtering and pagination honestly. These
// clone an existing thread's timeline under a new name — re-attributing the
// author and swapping the first name inside the message text — so every filler
// row opens onto a conversation that reads properly instead of an empty pane.
//
// They're all assigned to Priya Shah, the persona the prototype signs in as, so
// they show up in her inbox: 5 hand-written + 15 filler = 20 under the All pill.
// `status`, `unassigned` and `draft` are spread across the set deliberately so
// every view in the picker has at least five tagged rows to show — Closed,
// Unassigned and Drafts would otherwise hold one, none and three.
const _FILLER_PEOPLE = [
  { first: "Emma",    name: "Emma Sullivan",         phone: "+1 (415) 555-0163", avatar: "ES", color: "#12B76A", company: "Mentor · Soccer",                          tz: "America/Los_Angeles", time: "2h",  unread: 1, src: "t_landon",  draft: true,  tags: ["Soccer", "Re-engaged", "High-rebook"] },
  { first: "Noah",    name: "Noah Bergstrom",        phone: "+1 (612) 555-0184", avatar: "NB", color: "#004CE6", company: "Mentor · Hockey",                          tz: "America/Chicago",     time: "3h",  unread: 0, src: "t_sofia",   draft: true,  tags: ["Hockey", "Reschedule"] },
  { first: "Aisha",   name: "Aisha Rahman",          phone: "+1 (718) 555-0122", avatar: "AR", color: "#7A5AF8", company: "Mentor · Track & Field",                   tz: "America/New_York",    time: "4h",  unread: 2, src: "t_jared",   draft: true,  tags: ["Track", "Recurring", "VIP", "Payouts"] },
  { first: "Diego",   name: "Diego Marquez",         phone: "+1 (305) 555-0177", avatar: "DM", color: "#F79009", company: "Mentor · Baseball",                        tz: "America/New_York",    time: "5h",  unread: 0, src: "t_dominic", status: "closed", tags: ["Baseball", "Resolved"] },
  { first: "Chloe",   name: "Chloe Bennett (Parent)",phone: "+1 (206) 555-0139", avatar: "CB", color: "#EE46BC", company: "Parent of Ryan Bennett (mentee · Soccer)", tz: "America/Los_Angeles", time: "6h",  unread: 1, src: "t_jenna",   status: "closed", tags: ["Parent", "Recovery", "Escalation"] },
  { first: "Kwame",   name: "Kwame Osei",            phone: "+1 (404) 555-0195", avatar: "KO", color: "#0BA5EC", company: "Mentor · Basketball",                      tz: "America/New_York",    time: "8h",  unread: 0, src: "t_landon",  unassigned: true, tags: ["Basketball", "New lead"] },
  { first: "Lena",    name: "Lena Hoffmann",         phone: "+1 (503) 555-0148", avatar: "LH", color: "#DC6803", company: "Mentor · Swimming",                        tz: "America/Los_Angeles", time: "Yesterday", unread: 0, src: "t_sofia",   draft: true,  tags: ["Swimming", "Reschedule", "Follow-up"] },
  { first: "Tomas",   name: "Tomas Novak",           phone: "+1 (312) 555-0171", avatar: "TN", color: "#6938EF", company: "Mentor · Tennis",                          tz: "America/Chicago",     time: "Yesterday", unread: 1, src: "t_jared",   draft: true,  tags: ["Tennis", "Recurring"] },
  { first: "Bianca",  name: "Bianca Rossi",          phone: "+1 (617) 555-0156", avatar: "BR", color: "#12B76A", company: "Mentor · Volleyball",                      tz: "America/New_York",    time: "Yesterday", unread: 0, src: "t_dominic", status: "closed", tags: ["Volleyball", "Paused", "Season break"] },
  { first: "Malik",   name: "Malik Johnson (Parent)",phone: "+1 (901) 555-0128", avatar: "MJ", color: "#D92D20", company: "Parent of Amari Johnson (mentee · Football)", tz: "America/Chicago",   time: "2d",  unread: 0, src: "t_jenna",   status: "closed", tags: ["Parent", "Football", "Resolved"] },
  { first: "Saoirse", name: "Saoirse Doyle",         phone: "+1 (857) 555-0113", avatar: "SD", color: "#004CE6", company: "Mentor · Lacrosse",                        tz: "America/New_York",    time: "2d",  unread: 0, src: "t_landon",  unassigned: true, tags: ["Lacrosse", "New lead", "Awaiting reply"] },
  { first: "Yuki",    name: "Yuki Tanaka",           phone: "+1 (669) 555-0187", avatar: "YT", color: "#7A5AF8", company: "Mentor · Gymnastics",                      tz: "America/Los_Angeles", time: "3d",  unread: 0, src: "t_sofia",   unassigned: true, tags: ["Gymnastics", "Onboarding"] },
  { first: "Andre",   name: "Andre Fontaine",        phone: "+1 (514) 555-0132", avatar: "AF", color: "#F79009", company: "Mentor · Hockey",                          tz: "America/New_York",    time: "4d",  unread: 0, src: "t_jared",   unassigned: true, tags: ["Hockey", "Payouts", "Recurring"] },
  { first: "Priti",   name: "Priti Nair",            phone: "+1 (469) 555-0166", avatar: "PN", color: "#0BA5EC", company: "Mentor · Cricket",                         tz: "America/Chicago",     time: "5d",  unread: 0, src: "t_dominic", unassigned: true, tags: ["Cricket", "New lead"] },
  { first: "Hector",  name: "Hector Alvarez",        phone: "+1 (702) 555-0149", avatar: "HA", color: "#EE46BC", company: "Mentor · Boxing",                          tz: "America/Los_Angeles", time: "6d",  unread: 0, src: "t_jenna",   status: "closed", tags: ["Boxing", "Resolved", "Advocate"] },
];

// Swap the template person's first name for the filler's wherever it appears in
// the copy, so a cloned thread doesn't greet the wrong person.
const _swapFirstName = (text, fromFirst, toFirst) =>
  typeof text === "string" ? text.split(fromFirst).join(toFirst) : text;

// A cloned thread inherits its source's campaign marker, which would leave six
// rows all claiming the same campaign. Each filler takes a different one from
// the real Campaigns list instead. Names match src/app/campaigns-messaging.js
// so the marker points at something that actually exists.
const _FILLER_CAMPAIGNS = [
  "Renewal reminder series", "Trial day 0 → day 14", "Referral ask",
  "Product update — August", "Upsell — Pro to Business", "Webinar reminder — APAC",
  "Cart abandonment nudge", "NPS follow-up — detractors", "Event invite — London",
  "Payment failed follow-up", "August price update", "Warehouse open house",
  "Flash sale — 24 hours only", "Spring workshop reactivation", "Q3 winback",
];

_FILLER_PEOPLE.forEach((p, pi) => {
  const src = THREADS.find((t) => t.id === p.src);
  if (!src) return;
  const srcFirst = src.name.split(" ")[0];
  const id = "t_" + p.first.toLowerCase();
  THREADS.push({
    ...src,
    id,
    name: p.name,
    phone: p.phone,
    avatar: p.avatar,
    color: p.color,
    company: p.company,
    timezone: p.tz,
    time: p.time,
    unread: p.unread,
    preview: _swapFirstName(src.preview, srcFirst, p.first),
    assignee: p.unassigned ? null : { name: "Priya Shah", id: "u_priya" },
    status: p.status || "open",
    draft: !!p.draft,
    tags: p.tags || [],
    showTags: !!(p.tags && p.tags.length),
    pinned: false
  });
  THREAD_MESSAGES[id] = (THREAD_MESSAGES[p.src] || []).map((m) => ({
    ...m,
    text: _swapFirstName(m.text, srcFirst, p.first),
    author: m.author === src.name ? p.name : m.author,
    ...(m.kind === "event" && m.event === "campaign" ?
      { campaign: _FILLER_CAMPAIGNS[pi % _FILLER_CAMPAIGNS.length] } : null)
  }));
});

/* The empty-account persona sees no conversations at all — not a filtered-down
   list but an empty inbox, which is what the empty states are there to show.
   Emptying the source rather than filtering downstream keeps every consumer
   honest: the row previews, the view counts and the contact panel all read the
   same arrays. */
if (window.jcIsEmptyProfile && window.jcIsEmptyProfile()) {
  THREADS.length = 0;
  Object.keys(THREAD_MESSAGES).forEach((k) => { delete THREAD_MESSAGES[k]; });
}

window.THREADS = THREADS;
window.THREAD_MESSAGES = THREAD_MESSAGES;
window.CURRENT_USERS = CURRENT_USERS;

// Phone lines — Athlete to Athlete operational numbers. Keeping the same
// shape PHONE_LINES had before so the From-line picker still works.
// `whatsapp` marks the three numbers registered with WhatsApp Business — a
// separate capability from SMS, so it overlaps rather than replaces it.
const PHONE_LINES = [
  { id: "l_mentor_us", name: "Mentor Ops — US",     phone: "+1 (432) 423-3410", flag: "🇺🇸", whatsapp: true },
  { id: "l_support_us",name: "Support — US",        phone: "+1 (432) 423-3411", flag: "🇺🇸", whatsapp: true },
  { id: "l_parent_us", name: "Parent Concierge",    phone: "+1 (432) 423-3412", flag: "🇺🇸" },
  { id: "l_recruit_us",name: "Recruiting Desk — US",phone: "+1 (432) 423-3413", flag: "🇺🇸" },
  { id: "l_mentor_ca", name: "Mentor Ops — CA",     phone: "+1 (604) 555-0142", flag: "🇨🇦" },
  { id: "l_mentor_uk", name: "Mentor Ops — UK",     phone: "+44 20 7946 0318",  flag: "🇬🇧", whatsapp: true },
  { id: "l_billing",   name: "Billing & Accounts",  phone: "+1 (432) 423-3414", flag: "🇺🇸" },
  { id: "l_default",   name: "Default Ring Group",  phone: "+1 (432) 423-3400", flag: "🇺🇸" },
];
window.PHONE_LINES = PHONE_LINES;

// Agents — match coordinators (peers) + leads. Andrew is the lead, Priya the
// peer agent, plus a few teammates for assignment menus. No execs.
const AGENTS = [
  { id: "u_andrew",  name: "Andrew Wallace",  initials: "AW", color: "#004CE6", role: "Lead Match Coordinator", status: "available" },
  { id: "u_priya",   name: "Priya Shah",      initials: "PS", color: "#7A5AF8", role: "Match Coordinator",      status: "available" },
  { id: "u_jordan",  name: "Jordan Emtee",   initials: "JE", color: "#12B76A", role: "Match Coordinator",      status: "oncall"   },
  { id: "u_taylor",  name: "Taylor Brooks",   initials: "TB", color: "#F79009", role: "Match Coordinator",      status: "away"     },
  { id: "u_sam",     name: "Sam Okeke",       initials: "SO", color: "#EE46BC", role: "Match Coordinator",      status: "available" },
  { id: "u_riley",   name: "Riley Carter",    initials: "RC", color: "#0BA5EC", role: "Match Coordinator",      status: "offline"  },
  { id: "u_morgan",  name: "Morgan Liu",      initials: "ML", color: "#DC6803", role: "Match Coordinator",      status: "available" },
  { id: "u_jamie",   name: "Jamie Nguyen",    initials: "JN", color: "#6938EF", role: "Match Coordinator",      status: "oncall"   },
];
window.AGENTS = AGENTS;
