/* global React */
// Mock data for the vendor management system

const CATEGORIES = [
  { id: "prod",    label: "Production",     color: "#9437FF" },
  { id: "print",   label: "Print & Signage", color: "#73FDFF" },
  { id: "media",   label: "Media Buying",   color: "#FFB547" },
  { id: "talent",  label: "Talent & MCs",   color: "#FF5E7A" },
  { id: "event",   label: "Event Crew",     color: "#22D389" },
  { id: "logistics",label:"Logistics",       color: "#5B2D9A" },
  { id: "office",  label: "Office Supplies",color: "#A554FF" },
  { id: "legal",   label: "Legal",          color: "#007A8C" },
];

const SUPPLIERS = [
  { id: "VND-1042", name: "Tinker Post Bangkok",       cat: "prod",     city: "Bangkok",  country: "TH", taxId: "0105561029384", terms: "NET 45", rating: 5, projects: 23, spend: 2840000, status: "active",   compliance: "verified",   contact: "Praew Wattana",       email: "ops@tinkerpost.co.th",       updated: "2 days ago" },
  { id: "VND-1037", name: "Northstar Print Co.",       cat: "print",    city: "Bangkok",  country: "TH", taxId: "0105560193847", terms: "NET 30", rating: 4, projects: 41, spend: 1920000, status: "active",   compliance: "verified",   contact: "Krit Sumetkit",       email: "billing@northstarprint.com", updated: "5 days ago" },
  { id: "VND-1051", name: "Aurora Media Group",         cat: "media",    city: "Bangkok",  country: "TH", taxId: "0105562847291", terms: "NET 60", rating: 5, projects: 18, spend: 4310000, status: "active",   compliance: "verified",   contact: "Nadia Charoenkul",    email: "billing@auroramedia.asia",   updated: "Today" },
  { id: "VND-0998", name: "BKK Talent Network",         cat: "talent",   city: "Bangkok",  country: "TH", taxId: "0105559281736", terms: "NET 15", rating: 4, projects: 34, spend: 980000,  status: "active",   compliance: "kyc-pending",contact: "Mod Phongsakorn",     email: "casting@bkktalent.co",       updated: "1 week ago" },
  { id: "VND-1108", name: "Rise & Crew Production",     cat: "event",    city: "Bangkok",  country: "TH", taxId: "0105563918274", terms: "NET 30", rating: 5, projects: 12, spend: 760000,  status: "active",   compliance: "verified",   contact: "Boom Suwannakij",     email: "hello@riseandcrew.co",       updated: "3 hours ago" },
  { id: "VND-1140", name: "Velocity Logistics",         cat: "logistics",city: "Samutprakan",country:"TH",taxId: "0105564019287", terms: "NET 30", rating: 4, projects: 56, spend: 1240000, status: "active",   compliance: "verified",   contact: "Earth Phakdeesin",    email: "ops@velocity-logi.com",      updated: "Yesterday" },
  { id: "VND-1129", name: "OfficeWell Supplies",        cat: "office",   city: "Bangkok",  country: "TH", taxId: "0105563728192", terms: "NET 30", rating: 3, projects: 28, spend: 320000,  status: "active",   compliance: "verified",   contact: "Aim Klairoek",        email: "sales@officewell.co.th",     updated: "2 weeks ago" },
  { id: "VND-1011", name: "Sirikit & Partners",         cat: "legal",    city: "Bangkok",  country: "TH", taxId: "0105560182746", terms: "NET 60", rating: 5, projects: 8,  spend: 1840000, status: "active",   compliance: "verified",   contact: "Sirikit Maneerat",    email: "ops@sirikitlegal.com",       updated: "1 month ago" },
  { id: "VND-1166", name: "Frame & Field Studio",       cat: "prod",     city: "Bangkok",  country: "TH", taxId: "0105564938271", terms: "NET 45", rating: 4, projects: 9,  spend: 670000,  status: "active",   compliance: "verified",   contact: "Tul Anantawong",      email: "studio@frameandfield.asia",  updated: "Today" },
  { id: "VND-1183", name: "Neon Signage Bangkok",        cat: "print",    city: "Bangkok",  country: "TH", taxId: "0105565028174", terms: "NET 30", rating: 4, projects: 19, spend: 540000,  status: "active",   compliance: "verified",   contact: "Tee Boonyaratglin",   email: "orders@neonsignagebkk.com",  updated: "4 days ago" },
  { id: "VND-1199", name: "Halo OOH Network",            cat: "media",    city: "Bangkok",  country: "TH", taxId: "0105565739281", terms: "NET 60", rating: 3, projects: 6,  spend: 2410000, status: "review",   compliance: "kyc-pending",contact: "Pim Lertkraitham",    email: "deals@halo-ooh.com",         updated: "Today" },
  { id: "VND-1077", name: "Stagehand Crew Co.",          cat: "event",    city: "Nonthaburi",country:"TH", taxId: "0105562018475", terms: "NET 30", rating: 4, projects: 22, spend: 410000,  status: "active",   compliance: "verified",   contact: "Win Chitsuwannakul",  email: "book@stagehand.co.th",       updated: "1 week ago" },
  { id: "VND-1212", name: "Drayage Express",             cat: "logistics",city: "Bangkok",  country: "TH", taxId: "0105565828174", terms: "NET 15", rating: 3, projects: 14, spend: 280000,  status: "blacklist",compliance: "rejected",   contact: "Bank Visetsiri",      email: "ops@drayage.co",             updated: "2 weeks ago" },
  { id: "VND-1248", name: "Bright Lens Productions",     cat: "prod",     city: "Bangkok",  country: "TH", taxId: "0105566018245", terms: "NET 45", rating: 5, projects: 4,  spend: 320000,  status: "active",   compliance: "verified",   contact: "Fern Suphakorn",      email: "produce@brightlens.tv",      updated: "3 days ago" },
  { id: "VND-1255", name: "Castline Talent Co.",         cat: "talent",   city: "Bangkok",  country: "TH", taxId: "0105566827419", terms: "NET 30", rating: 4, projects: 17, spend: 720000,  status: "active",   compliance: "verified",   contact: "Mai Tantipun",        email: "casting@castline.co",        updated: "Yesterday" },
  { id: "VND-1271", name: "Echo Audio Post",             cat: "prod",     city: "Bangkok",  country: "TH", taxId: "0105567018273", terms: "NET 30", rating: 5, projects: 11, spend: 480000,  status: "active",   compliance: "verified",   contact: "Top Wongsathit",      email: "studio@echoaudio.bkk",       updated: "5 hours ago" },
  { id: "VND-1283", name: "Lumen Stationery",            cat: "office",   city: "Bangkok",  country: "TH", taxId: "0105567918245", terms: "NET 30", rating: 3, projects: 31, spend: 192000,  status: "active",   compliance: "verified",   contact: "Aof Suteerakul",      email: "sales@lumen.co.th",          updated: "1 week ago" },
  { id: "VND-1290", name: "Atlas Trade Counsel",         cat: "legal",    city: "Bangkok",  country: "TH", taxId: "0105568019283", terms: "NET 60", rating: 4, projects: 3,  spend: 410000,  status: "active",   compliance: "verified",   contact: "Pranee Kaewthong",    email: "office@atlas-trade.co",      updated: "3 weeks ago" },
];

const PENDING_APPROVALS = [
  { id: "VND-1314", name: "Reverb Sound Stage",      cat: "prod",   submittedBy: "Ploy V.",  role: "AE",  when: "2h ago",   docs: 5, terms: "NET 45", note: "Audio-post house referred by Aurora Media. Used for Toyota campaign Q1." },
  { id: "VND-1313", name: "Citylight Banners Ltd.",   cat: "print",  submittedBy: "Tee S.",   role: "PM",  when: "5h ago",   docs: 3, terms: "NET 30", note: "Vinyl + structural signage. Bid-ready for taxi wrap pilot rollout." },
  { id: "VND-1311", name: "Skyway OOH Bangkok",       cat: "media",  submittedBy: "Mod K.",   role: "BD",  when: "Yesterday",docs: 6, terms: "NET 60", note: "Owner of 14 highway billboards along Rama IX corridor. Negotiating exclusive." },
  { id: "VND-1309", name: "Onsite Crew Solutions",    cat: "event",  submittedBy: "Earth P.", role: "PM",  when: "2 days",   docs: 4, terms: "NET 30", note: "Replacement supplier for Stagehand on high-volume weeks." },
  { id: "VND-1307", name: "Pebble Talent Agency",     cat: "talent", submittedBy: "Win C.",   role: "AE",  when: "3 days",   docs: 2, terms: "NET 15", note: "Mid-tier influencer pool, focus on lifestyle + automotive verticals." },
];

const MY_BILLS = [
  { id: "INV-2026-0418", po: "PO-MR-3812", project: "Toyota Bz4X campaign", amount: 184000, submitted: "Apr 18, 2026", due: "May 18, 2026", status: "approved-payment" },
  { id: "INV-2026-0392", po: "PO-MR-3770", project: "AIS taxi takeover Q2",  amount:  92000, submitted: "Apr 11, 2026", due: "May 11, 2026", status: "paid" },
  { id: "INV-2026-0381", po: "PO-MR-3744", project: "Lazada flash event",    amount:  41500, submitted: "Apr 09, 2026", due: "May 09, 2026", status: "paid" },
  { id: "INV-2026-0428", po: "PO-MR-3829", project: "Toyota Bz4X campaign", amount:  76800, submitted: "Apr 22, 2026", due: "May 22, 2026", status: "pm-review" },
  { id: "INV-2026-0445", po: "PO-MR-3841", project: "Honda CR-V dealer push",amount: 128500, submitted: "Apr 24, 2026", due: "May 24, 2026", status: "finance-verify" },
  { id: "INV-2026-0466", po: "PO-MR-3855", project: "Bangkok Bank Q2",        amount:  58000, submitted: "Apr 28, 2026", due: "Jun 28, 2026", status: "scheduled" },
  { id: "INV-2026-0492", po: "PO-MR-3871", project: "Mistine influencer set", amount: 102400, submitted: "May 02, 2026", due: "Jun 01, 2026", status: "disputed" },
  { id: "INV-2026-0501", po: "PO-MR-3890", project: "Krungsri auto loan",     amount:  34000, submitted: "May 05, 2026", due: "Jun 04, 2026", status: "rejected" },
];

const BILLING_STATUS_META = {
  "pm-review":       { label: "PM review",        kind: "info"    },
  "finance-verify":  { label: "Finance verify",   kind: "info"    },
  "approved-payment":{ label: "Approved",         kind: "success" },
  "scheduled":       { label: "Scheduled",        kind: "neutral" },
  "paid":            { label: "Paid",             kind: "success" },
  "disputed":        { label: "Disputed",         kind: "warning" },
  "rejected":        { label: "Rejected / hold",  kind: "danger"  },
};

const COMPLIANCE_META = {
  "verified":     { label: "Verified",     kind: "success" },
  "kyc-pending":  { label: "KYC pending",  kind: "warning" },
  "rejected":     { label: "Blacklisted",  kind: "danger"  },
};

const SUPPLIER_STATUS_META = {
  "active":     { label: "Active",       kind: "success" },
  "review":     { label: "Under review", kind: "warning" },
  "blacklist":  { label: "Blacklisted",  kind: "danger"  },
};

const fmtTHB = (n) => "฿" + n.toLocaleString("en-US");
const catOf = (id) => CATEGORIES.find(c => c.id === id);

Object.assign(window, {
  CATEGORIES, SUPPLIERS, PENDING_APPROVALS, MY_BILLS,
  BILLING_STATUS_META, COMPLIANCE_META, SUPPLIER_STATUS_META,
  fmtTHB, catOf,
});
