export interface Berth {
  Id: number;
  "Mooring Number": string;
  Length: string;
  Draft: string;
  "Side Pontoon": string;
  "Power Capacity": number;
  Voltage: number;
  Status: string;
  Width: string;
  Area: string;
  "Map Data": {};
  "Nominal Boat Size": number;
  "Water Depth": string;
  "Water Depth Is Minimum": boolean;
  "Width Is Minimum": boolean;
  "Mooring Type": string;
  "Cleat Type": string;
  "Cleat Capacity": string;
  "Bollard Type": string;
  "Bollard Capacity": string;
  Access: string;
  Price: string;
  "Bow Facing": string;
  "Berth Approved": boolean;
}

export interface EOIDocument {
  mimetype: string;
  size: number;
  title: string;
  url: string;
  icon: string;
}

export type InterestSalesProcessLevel =
  | "General Qualified Interest"
  | "Specific Qualified Interest"
  | "LOI and NDA Sent"
  | "Signed LOI and NDA"
  | "Made Reservation"
  | "Contract Negotiation"
  | "Contract Negotiations Finalized"
  | "Contract Signed";

export const InterestSalesProcessLevelFlow = [
  "General Qualified Interest",
  "Specific Qualified Interest",
  "LOI and NDA Sent",
  "Signed LOI and NDA",
  "Made Reservation",
  "Contract Negotiation",
  "Contract Negotiations Finalized",
  "Contract Signed",
];

export type InterestLeadCategory = "General" | "Friends and Family";

export const InterestLeadCategoryFlow = ["General", "Friends and Family"];

export type ContactMethodPreferred = "Email" | "Phone";

export const ContactMethodPreferredFlow = ["Email", "Phone"];

export type EOIStatus = "Awaiting Further Details" | "Waiting for Signatures" | "Signed";

export const EOIStatusFlow = ["Awaiting Further Details", "Waiting for Signatures", "Signed"];

export type BerthInfoSentStatus = "Pending" | "Yes";

export const BerthInfoSentStatusFlow = ["Pending", "Yes"];

export type ContractSentStatus = "Pending" | "Yes";

export const ContractSentStatusFlow = ["Pending", "Yes"];

export type Deposit10PercentStatus = "Awaiting Further Details" | "Pending" | "Received";

export const Deposit10PercentStatusFlow = ["Awaiting Further Details", "Pending", "Received"];

export type ContractStatus = "Pending" | "40% Received" | "Complete";

export const ContractStatusFlow = ["Pending", "40% Received", "Complete"];

export interface Interest {
  Id: number;
  "Full Name": string;
  "Yacht Name": string;
  Length: string;
  Address: string;
  "Email Address": string;
  Berths_id: number;
  Berth: Berth;
  "Sales Process Level": InterestSalesProcessLevel;
  "Phone Number": string;
  "Extra Comments": string;
  "Berth Size Desired": string;
  "LOI-NDA Document": string;
  "Berth Recommendations": number;
  "Date Added": string;
  Width: string;
  Depth: string;
  "Created At": string;
  "Request More Information": string;
  Source: string;
  "Place of Residence": string;
  "Contact Method Preferred": ContactMethodPreferred;
  "Request Form Sent": string;
  "Berth Number": string;
  "EOI Time Sent": string;
  "EOI Document": EOIDocument[];
  "Lead Category": string;
  "Request More Info - To Sales": string;
  "EOI Send to Sales": string;
  "Time LOI Sent": string;
  Berths: number;
  "EOI Status": EOIStatus;
  "Berth Info Sent Status": BerthInfoSentStatus;
  "Contract Sent Status": ContractSentStatus;
  "Deposit 10% Status": Deposit10PercentStatus;
  "Contract Status": ContractStatus;
  // EOI Link fields
  "EOI Client Link"?: string;
  "EOI David Link"?: string;
  "EOI Oscar Link"?: string;
  // New signature link fields
  "Signature Link Client"?: string;
  "Signature Link CC"?: string;
  "Signature Link Developer"?: string;
  // Embedded signature link fields
  "EmbeddedSignatureLinkClient"?: string;
  "EmbeddedSignatureLinkCC"?: string;
  "EmbeddedSignatureLinkDeveloper"?: string;
  // Documenso document ID for generated documents
  "documensoID"?: string;
}

export interface InterestsResponse {
  list: Interest[];
}
