import {Language, AddressObject, DiagnosisQuestionItem} from "../../core/commonTypes";

export enum EmergencyMgmtEventType {
    Incident = "incident",
    Ambulance = "ambulance"
}

export enum EmergencyMgmtCatalogType {
    ERO = "user_ero",
    Ambulance = "ambulance"
}

export enum EmergencyMgmtItemAction {
    View = "view",
    Add = "add",
    Update = "update",
    Remove = "remove",
    Start = "start",
    End = "end",
    Pause = "pause",
    Resume = "resume",

    Attend = "attend",
    Decline = "decline",
    Terminate = "terminate",
    Transfer = "transfer",
    Skip = "skip",

    Dispatch = "dispatch",
    Denial = "denial",

    Other = "other"

}

export enum IncidentType {
    Emergency = "emergency",
    Grievance = "grievance",
    NonEmergency = "non_emergency",
    Transfer = "transfer",
    FollowUp = "follow_up",
    ServiceOffering = "service_offering",
    CustomerSupport = "customer_support",
    Other = "other",
}

export enum AmbulanceStatus {
    Available = "available",
    Busy = "busy",
    Maintenance = "maintenance",
    Other = "other",
}

export interface IncidentProperties {
    action: EmergencyMgmtItemAction,
    patient_id?: string,
    age?: number,
    blood_group?: string,
    gender?: string,
    incident_id: string,
    contact_id?: string,
    type: IncidentType,
    sub_type?: string,
    category?: string[],
    language?: Language,
    is_duplicate_incident?: boolean,
    is_sms_set_location?: boolean,
    severity?: string,
    chief_complaints_list?: string[],
    site_id?: string;
    name?: string;
    country?: string;
    region_state?: string;
    district?: string;
    sub_district?: string;
    city_town?: string;
    street_address?: string;
    landmark?: string;
    coordinates?: number[];
    facility_id?: string,
    ambulance_ids_list?: string[],
    schedule_time?: number,
    status?: string,
    resolution?: string,
    summary?: string,
    remarks?: string,
    meta?: any
}

export interface AmbulanceProperties {
    incident_id?: string,
    contact_id?: string,
    action: EmergencyMgmtItemAction,
    ambulance_id: string,
    driver_id: string,
    emso_id?: string,
    type: string,
    distance_from_incident?: number,
    status: AmbulanceStatus,
    eta?: number,
    gps_datetime?: string,
    location?: string,

    destination_site_id?: string;
    destination_name?: string;
    destination_country?: string;
    destination_region_state?: string;
    destination_district?: string;
    destination_sub_district?: string;
    destination_city_town?: string;
    destination_street_address?: string;
    destination_landmark?: string;
    destination_coordinates?: number[];

    pickup_site_id?: string;
    pickup_name?: string;
    pickup_country?: string;
    pickup_region_state?: string;
    pickup_district?: string;
    pickup_sub_district?: string;
    pickup_city_town?: string;
    pickup_street_address?: string;
    pickup_landmark?: string;
    pickup_coordinates?: number[];

    denial_author?: string,
    denial_reason: string,
    denial_remarks?: string
    meta?: any
}

export interface EROCatalog {
    joining_date?: string,
    status: string,
    employee_type?: string,
    zone?: string,
    site_id_list?: string[],
    supervisor_id_list?: string[]
}

export interface AmbulanceCatalog {
    type: string,
    base_site_id?: string,
    base_site_name?: string,
    base_site_district?: string,
}
