export type VesselCategory = 'INLAND_WATERWAY' | 'SEA_GOING';
export type VesselStatus = 'REGISTERED' | 'SUSPENDED' | 'DEREGISTERED';

/** A vessel-register entry, written when a registration certificate issues. */
export interface Vessel {
  id: string;
  registrationNumber: string;
  name: string;
  category: VesselCategory;
  vesselType: string | null;
  imoNumber: string | null;
  hullNumber: string | null;
  flagState: string | null;
  portOfRegistry: string | null;
  grossTonnage: string | number | null;
  passengerCapacity: number | null;
  lengthMeters: string | number | null;
  yearBuilt: number | null;
  engineType: string | null;
  enginePowerKw: string | number | null;
  numberOfEngines: number | null;
  hullMaterial: string | null;
  ownerUserId: string;
  ownerProfileId: string | null;
  ownerName: string | null;
  applicationId: string;
  licenseId: string;
  status: VesselStatus;
  statusReason: string | null;
  statusChangedAt: string | null;
  registeredAt: string;
}

export interface VesselIncident {
  id: string;
  vesselId: string;
  occurredAt: string;
  location: string | null;
  description: string;
  severity: string | null;
  reportedById: string;
  reportedByOfficer: boolean;
  createdAt: string;
}

export interface CreateVesselIncident {
  occurredAt: string;
  location?: string;
  description: string;
  severity?: string;
}
