export const APP_NAME = 'Dmcify'

export const ROLES = {
  ADMIN: 'ADMIN',
  OPERATIONS: 'OPERATIONS',
  SALES: 'SALES',
  FINANCE: 'FINANCE',
} as const

export const ROLE_LABELS: Record<string, string> = {
  ADMIN: 'Admin',
  OPERATIONS: 'Operations',
  SALES: 'Sales',
  FINANCE: 'Finance',
}

export const QUERY_STAGES = {
  NEW: 'NEW',
  IN_PROGRESS: 'IN_PROGRESS',
  QUOTED: 'QUOTED',
  CONFIRMED: 'CONFIRMED',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED',
} as const

export const QUERY_STAGE_LABELS: Record<string, string> = {
  NEW: 'New',
  IN_PROGRESS: 'In Progress',
  QUOTED: 'Quoted',
  CONFIRMED: 'Confirmed',
  COMPLETED: 'Completed',
  CANCELLED: 'Cancelled',
}

export const BOOKING_STATUS_LABELS: Record<string, string> = {
  CONFIRMED: 'Confirmed',
  IN_PROGRESS: 'In Progress',
  COMPLETED: 'Completed',
  CANCELLED: 'Cancelled',
}

export const PAYMENT_STATUS_LABELS: Record<string, string> = {
  PENDING: 'Pending',
  PARTIAL: 'Partial',
  COMPLETED: 'Completed',
  REFUNDED: 'Refunded',
}

export const TRIP_SOURCE_TYPE_LABELS: Record<string, string> = {
  B2B_AGENT: 'B2B Agent',
  WEBSITE: 'Website',
  SOCIAL_MEDIA: 'Social Media',
  WALK_IN: 'Walk-in',
  REFERRAL: 'Referral',
  OTHER: 'Other',
}

export const SUPPLIER_TYPE_LABELS: Record<string, string> = {
  TRANSPORT: 'Transport',
  ACTIVITY: 'Activity',
  HOTEL: 'Hotel',
}

export const SERVICE_TYPE_LABELS: Record<string, string> = {
  HOTEL: 'Hotel',
  TRANSPORT: 'Transport',
  ACTIVITY: 'Activity',
  VISA: 'Visa',
  INSURANCE: 'Insurance',
  GUIDE: 'Guide',
  OTHER: 'Other',
}

export const FUND_STATUS_LABELS: Record<string, string> = {
  BLOCKED: 'Blocked',
  RELEASED: 'Released',
  PAID: 'Paid',
  CANCELLED: 'Cancelled',
}

export const OPERATION_TYPE_LABELS: Record<string, string> = {
  PICKUP: 'Pickup',
  DROP: 'Drop',
  TRANSFER: 'Transfer',
  SIGHTSEEING: 'Sightseeing',
  CHECKIN: 'Check-in',
  CHECKOUT: 'Check-out',
  ACTIVITY: 'Activity',
}

export const OPERATION_TYPE_COLORS: Record<string, { bg: string; text: string; border: string; bar: string }> = {
  PICKUP:      { bg: 'bg-green-50',   text: 'text-green-700',  border: 'border-green-200',  bar: '#22c55e' },
  DROP:        { bg: 'bg-red-50',     text: 'text-red-700',    border: 'border-red-200',    bar: '#ef4444' },
  TRANSFER:    { bg: 'bg-blue-50',    text: 'text-blue-700',   border: 'border-blue-200',   bar: '#3b82f6' },
  SIGHTSEEING: { bg: 'bg-purple-50',  text: 'text-purple-700', border: 'border-purple-200', bar: '#a855f7' },
  CHECKIN:     { bg: 'bg-teal-50',    text: 'text-teal-700',   border: 'border-teal-200',   bar: '#14b8a6' },
  CHECKOUT:    { bg: 'bg-orange-50',  text: 'text-orange-700', border: 'border-orange-200', bar: '#f97316' },
  ACTIVITY:    { bg: 'bg-amber-50',   text: 'text-amber-700',  border: 'border-amber-200',  bar: '#f59e0b' },
}

export const OPERATION_STATUS_LABELS: Record<string, string> = {
  SCHEDULED: 'Scheduled',
  IN_PROGRESS: 'In Progress',
  COMPLETED: 'Completed',
  CANCELLED: 'Cancelled',
}

export const NOTIFICATION_TYPE_LABELS: Record<string, string> = {
  INFO: 'Info',
  SUCCESS: 'Success',
  WARNING: 'Warning',
  ERROR: 'Error',
}

export const MEAL_PLAN_LABELS: Record<string, string> = {
  EP: 'European Plan (No Meals)',
  CP: 'Continental Plan (Breakfast)',
  MAP: 'Modified American (Half Board)',
  AP: 'American Plan (Full Board)',
}

export const VEHICLE_TYPE_LABELS: Record<string, string> = {
  SEDAN: 'Sedan',
  SUV: 'SUV',
  VAN: 'Van',
  MINIBUS: 'Minibus',
  BUS: 'Bus',
  LUXURY: 'Luxury',
}

export const CURRENCY_OPTIONS = [
  { value: 'USD', label: 'USD' },
  { value: 'EUR', label: 'EUR' },
  { value: 'GBP', label: 'GBP' },
  { value: 'AED', label: 'AED' },
  { value: 'INR', label: 'INR' },
]

export const TIMEZONE_OPTIONS = [
  { value: 'UTC', label: 'UTC' },
  { value: 'Asia/Kolkata', label: 'Asia/Kolkata (IST)' },
  { value: 'Asia/Dubai', label: 'Asia/Dubai (GST)' },
  { value: 'Europe/London', label: 'Europe/London (GMT)' },
  { value: 'America/New_York', label: 'America/New York (EST)' },
  { value: 'Asia/Singapore', label: 'Asia/Singapore (SGT)' },
  { value: 'Asia/Tokyo', label: 'Asia/Tokyo (JST)' },
]

export const INVOICE_TYPE_LABELS: Record<string, string> = {
  PROFORMA: 'Proforma',
  TAX_INVOICE: 'Tax Invoice',
}

export const INVOICE_STATUS_LABELS: Record<string, string> = {
  DRAFT: 'Draft',
  SENT: 'Sent',
  PAID: 'Paid',
  CANCELLED: 'Cancelled',
}

export const TASK_PRIORITY_LABELS: Record<string, string> = {
  LOW: 'Low',
  MEDIUM: 'Medium',
  HIGH: 'High',
  URGENT: 'Urgent',
}

export const TASK_STATUS_LABELS: Record<string, string> = {
  TODO: 'To Do',
  IN_PROGRESS: 'In Progress',
  DONE: 'Done',
}

export const REMINDER_STATUS_LABELS: Record<string, string> = {
  PENDING: 'Pending',
  SENT: 'Sent',
  DISMISSED: 'Dismissed',
}

export const VOUCHER_TYPE_LABELS: Record<string, string> = {
  FULL_TOUR: 'Full Tour',
  HOTEL_ONLY: 'Hotel Only',
}

export const TOUR_TYPE_LABELS: Record<string, string> = {
  PRIVATE: 'Private',
  SIC: 'SIC (Seat-in-Coach)',
}

export const SIC_TOUR_STATUS_LABELS: Record<string, string> = {
  ACTIVE: 'Active',
  FULL: 'Full',
  COMPLETED: 'Completed',
  CANCELLED: 'Cancelled',
}

export const LEAD_DISTRIBUTION_LABELS: Record<string, string> = {
  MANUAL: 'Manual',
  ROUND_ROBIN: 'Round Robin',
  LOAD_BALANCED: 'Load Balanced',
}

export const STATUS_COLORS: Record<string, { bg: string; text: string }> = {
  NEW: { bg: 'bg-blue-100', text: 'text-blue-700' },
  IN_PROGRESS: { bg: 'bg-yellow-100', text: 'text-yellow-700' },
  QUOTED: { bg: 'bg-purple-100', text: 'text-purple-700' },
  CONFIRMED: { bg: 'bg-green-100', text: 'text-green-700' },
  COMPLETED: { bg: 'bg-gray-100', text: 'text-gray-700' },
  CANCELLED: { bg: 'bg-red-100', text: 'text-red-700' },
  PENDING: { bg: 'bg-yellow-100', text: 'text-yellow-700' },
  PARTIAL: { bg: 'bg-orange-100', text: 'text-orange-700' },
  REFUNDED: { bg: 'bg-pink-100', text: 'text-pink-700' },
  BLOCKED: { bg: 'bg-amber-100', text: 'text-amber-700' },
  RELEASED: { bg: 'bg-brand-50', text: 'text-brand-dark' },
  PAID: { bg: 'bg-green-100', text: 'text-green-700' },
  ACTIVE: { bg: 'bg-green-100', text: 'text-green-700' },
  INACTIVE: { bg: 'bg-gray-100', text: 'text-gray-700' },
  DRAFT: { bg: 'bg-gray-100', text: 'text-gray-500' },
  SENT: { bg: 'bg-blue-100', text: 'text-blue-700' },
  TODO: { bg: 'bg-slate-100', text: 'text-slate-700' },
  DONE: { bg: 'bg-green-100', text: 'text-green-700' },
  LOW: { bg: 'bg-gray-100', text: 'text-gray-600' },
  MEDIUM: { bg: 'bg-blue-100', text: 'text-blue-700' },
  HIGH: { bg: 'bg-orange-100', text: 'text-orange-700' },
  URGENT: { bg: 'bg-red-100', text: 'text-red-700' },
  DISMISSED: { bg: 'bg-gray-100', text: 'text-gray-500' },
  FULL: { bg: 'bg-purple-100', text: 'text-purple-700' },
  PRIVATE: { bg: 'bg-blue-100', text: 'text-blue-700' },
  SIC: { bg: 'bg-teal-100', text: 'text-teal-700' },
  SCHEDULED: { bg: 'bg-blue-100', text: 'text-blue-700' },
}
