export enum CallCenterEventType {
    Break = "break",
    Contact = "contact",
    OpsScorecard = "ops_scorecard",
}

export enum CallCenterAction {
    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",

    Other = "other"

}

export enum BreakType {
    BioBreak = "bio_break",
    Feedback = "feedback",
    Meeting = "meeting",
    Meal = "meal",
    Tea = "tea",
    Other = "other",
}

export enum ContactChannel {
    Call = "call",
    WhatsApp = "whatsapp",
    SMS = "sms",
    Email = "email",
    Other = "other",
}

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

export interface BreakProperties {
    type: BreakType,
    sub_type?: string,
    action: CallCenterAction,
    total_time: number,
    consumed_time: number
    meta?: any
}

export interface ContactProperties {
    action: CallCenterAction,
    contact_id: string,
    contact_channel: ContactChannel,
    contact_type: ContactType,
    contact_start_time?: string,
    contact_sub_type?: string,
    contact_is_valid?: boolean,
    contact_is_transfer?: boolean,
    contact_incident_id?: string,
    contact_customer_id?: string,
    contact_customer_type?: string,
    contact_phone_id?: string,
    contact_extension?: string,
    contact_duration?: number,
    contact_resolution?: string,
    contact_summary?: string,
    contact_remarks?: string,
    contact_is_priority?: boolean

    transfer_id?: string,
    transfer_destination?: string,
    transfer_summary?: string,
    transfer_remarks?: string,

    meta?: any
}

export interface OpsScorecardProperties {
    audit_count: number,
    quality_score?: number,
    fatal_calls?: number,
    fatal_score?: number,
    performance_group: string,
    remarks?: string,
    meta?: any
}
