// ─── Pipeline Stages ─────────────────────────────────────────────────────────

export const PIPELINE_STAGES = [
  'open',
  'details_sent',
  'in_communication',
  'visited',
  'signed_eoi_nda',
  'deposit_10pct',
  'contract',
  'completed',
] as const;

export type PipelineStage = (typeof PIPELINE_STAGES)[number];

// ─── Berth Statuses ──────────────────────────────────────────────────────────

export const BERTH_STATUSES = ['available', 'under_offer', 'sold'] as const;

export type BerthStatus = (typeof BERTH_STATUSES)[number];

// ─── Lead Categories ─────────────────────────────────────────────────────────

export const LEAD_CATEGORIES = [
  'general_interest',
  'specific_qualified',
  'hot_lead',
] as const;

export type LeadCategory = (typeof LEAD_CATEGORIES)[number];

// ─── Document Types ──────────────────────────────────────────────────────────

export const DOCUMENT_TYPES = [
  'eoi',
  'contract',
  'nda',
  'reservation_agreement',
  'other',
] as const;

export type DocumentType = (typeof DOCUMENT_TYPES)[number];

// ─── Document Statuses ───────────────────────────────────────────────────────

export const DOCUMENT_STATUSES = [
  'draft',
  'sent',
  'partially_signed',
  'completed',
  'expired',
  'cancelled',
] as const;

export type DocumentStatus = (typeof DOCUMENT_STATUSES)[number];

// ─── Expense Categories ──────────────────────────────────────────────────────

export const EXPENSE_CATEGORIES = [
  'fuel',
  'maintenance',
  'cleaning',
  'docking',
  'insurance',
  'utilities',
  'marina_fees',
  'repairs',
  'equipment',
  'crew',
  'administration',
  'marketing',
  'travel',
  'entertainment',
  'other',
] as const;

export type ExpenseCategory = (typeof EXPENSE_CATEGORIES)[number];

// ─── Payment Methods ─────────────────────────────────────────────────────────

export const PAYMENT_METHODS = [
  'bank_transfer',
  'credit_card',
  'debit_card',
  'cash',
  'cheque',
  'crypto',
  'other',
] as const;

export type PaymentMethod = (typeof PAYMENT_METHODS)[number];

// ─── Notification Types ──────────────────────────────────────────────────────

export const NOTIFICATION_TYPES = [
  // Interest / pipeline
  'interest_stage_changed',
  'interest_created',
  'interest_assigned',
  // Documents
  'document_sent',
  'document_signed',
  'document_completed',
  'document_expired',
  'document_reminder',
  // Reminders
  'reminder_due',
  'reminder_overdue',
  'reminder_assigned',
  // Financial
  'invoice_sent',
  'invoice_paid',
  'invoice_overdue',
  // Notes
  'mention',
  // Email
  'email_received',
  // System
  'system_alert',
  'job_failed',
  'bulk_operation_complete',
  'export_ready',
  // Berths
  'berth_status_changed',
  'berth_waiting_list_update',
] as const;

export type NotificationType = (typeof NOTIFICATION_TYPES)[number];
