// Client data interfaces

export interface ClientContact {
    id: number;
    firstName: string;
    lastName: string;
    position: string;
    phoneNumber: string;
    email: string;
    isActive: boolean;
    joinedDate: string;
}

export interface ClientContract {
    id: number;
    contractNumber: string;
    title: string;
    startDate: string;
    endDate: string;
    status: 'active' | 'expired' | 'upcoming';
    value: number;
    currency: string;
    signedBy: string;
}

export interface ClientInvoice {
    id: number;
    invoiceNumber: string;
    contractNumber: string;
    issueDate: string;
    dueDate: string;
    amount: number;
    currency: string;
    status: 'Paid' | 'Pending' | 'Overdue' | 'Cancelled';
    description: string;
    paidDate?: string;
}

export interface ClientPayment {
    id: number;
    paymentNumber: string;
    invoiceNumber: string;
    amount: number;
    currency: string;
    paymentDate: string;
    paymentMethod: 'Credit Card' | 'Bank Transfer' | 'Check' | 'Cash';
    status: 'Completed' | 'Pending' | 'Failed' | 'Refunded';
    transactionId: string;
}

export interface ClientCustomer {
    id: number;
    client_id: number;
    client_contact_id: number;
    city_id: number;
    state_id: number;
    country_id: number;
    pricing_city_id?: number;
    pricing_city?: { id: number; name: string };
    hospital_id: number;
    vehicle_type_id: number;
    customer_name: string;
    date_of_birth: string;
    gender: string;
    primary_address: string;
    secondary_address: string;
    zip_code: string;
    country_code: string;
    phone_number: string;
    email: string;
    visa_start_date: string;
    visa_end_date: string;
    reference_number: string;
    prn_number: string;
    episode: string;
    log_issue_at: string | null;
    log_expire_at: string | null;
    letter_of_guarantee: string;
    is_medical_tourist: boolean;
    department: string;
    job_title: string;
    status: string;
    current_step: number;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
    tags: string[];
    city: {
        id: number;
        name: string;
    };
    state: {
        id: number;
        name: string;
    };
    country: {
        id: number;
        name: string;
    };
    hospital: {
        id: number;
        name: string;
        address: string;
        phone_number: string;
        email: string;
    };
    vehicle_type: {
        id: number;
        name: string;
    };
}
