import {FilterStatusType} from "../ReactComponents";

export interface Invitation {
    minio_path_url: string;
    minio_path: any;
    file: any;
    id: number
    status_id: number
    card_number: string
    code:string
    status: InvitationStatus
    title: string
    host_email: string
    host_phone_number: string
    host_fullname: string
    message_to_visitor: string
    message_to_gate: string
    institute_no: string
    institute_name: string
    institute_name_en: string
    building_no: string
    building_name: string
    building_name_en: string
    building_number: string
    locale: 'en' | 'el'
    room: string
    room_en: string
    principal_signature: string
    principal_signature_en: string
    type: InvitationType
    created_at: string
    updated_at: string
    companions: [string]
    visitor: Visitor
    visits: Visit[]
    mass_title:{
        title:string
    }
    behalf_user: number
    all_visits_cancelled:boolean
    cancelled_visits_count:number
    total_visits_count:number
    vehicle_allowed: 1 | 0
    building_institute: string
    room_name: string
    principal_id: number
    principal_signature_id: number
}


interface Visit {
    id: number,
    invitation_id: number,
    status_id: number,
    code: string
    date: string
    time_from: string
    time_to: string
    created_at: string
    updated_at: string
}

export interface Visitor {
    id: number
    email: string
    firstname: string
    lastname: string
    phone_number: string
    personal_id: string
    notes: string
    locale:string
}

export type InvitationType = 'group' | 'single' | 'mass'

/**
 * This is generic status used in every entity
 */
export interface Status {
    new_name: string
    description: string
    id: number
    name: string
    // name: 'pending' | 'scheduled' | 'on_going' | 'completed' | 'timed_out' | 'cancelled_host' | 'cancelled_visitor' | 'unfulfilled' | 'towards_completion'
    view_name: string
    view_name_el: string
    view_name_plural: string
    type: FilterStatusType
    ui_type?: FilterStatusType
}

export interface InvitationStatus {
    description: string
    id: 1
    name: 'pending' | 'awaiting_acceptance' | 'accepted' | 'declined' | 'cancelled'
    view_name: string
    view_name_plural: string
    type: FilterStatusType
}
