import type {
  PIPELINE_STAGES,
  BERTH_STATUSES,
  LEAD_CATEGORIES,
  DOCUMENT_TYPES,
  DOCUMENT_STATUSES,
} from '@/lib/constants';

export type PipelineStage = (typeof PIPELINE_STAGES)[number];
export type BerthStatus = (typeof BERTH_STATUSES)[number];
export type LeadCategory = (typeof LEAD_CATEGORIES)[number];
export type DocumentType = (typeof DOCUMENT_TYPES)[number];
export type DocumentStatus = (typeof DOCUMENT_STATUSES)[number];

export interface Port {
  id: string;
  name: string;
  slug: string;
  defaultCurrency: string;
  timezone: string;
  isActive: boolean;
}

export interface Client {
  id: string;
  portId: string;
  fullName: string;
  nationality?: string | null;
  source?: string | null;
  archivedAt?: Date | null;
  createdAt: Date;
  updatedAt: Date;
}

export interface Interest {
  id: string;
  portId: string;
  clientId: string;
  berthId?: string | null;
  pipelineStage: PipelineStage;
  leadCategory?: LeadCategory | null;
  source?: string | null;
  archivedAt?: Date | null;
  createdAt: Date;
  updatedAt: Date;
}

export interface Berth {
  id: string;
  portId: string;
  mooringNumber: string;
  area?: string | null;
  status: BerthStatus;
  lengthFt?: string | null;
  widthFt?: string | null;
  price?: string | null;
  priceCurrency: string;
  createdAt: Date;
  updatedAt: Date;
}
