import { type Doctor, genDoctor } from "./doctor"
import { genEmployee, type Employee } from "./employee"
import { type Patient, genPatient } from "./patient"
import type { Specialist } from "./specialist"
import type { Subspecialist } from "./subspecialist"
import { genUnit, type Unit } from "./unit"

export interface Encounter {
    id: number
    patient_id: number
    patient: Patient
    registeredAt: string
    class_code: string
    unit_id: number
    unit: Unit
    specialist_id?: number
    specilist?: Specialist
    subspecialist_id?: number
    subspecialist?: Subspecialist
    visitDate: string
    adm_employee_id: number
    adm_employee: Employee
    appointment_doctor_id: number
    appointment_doctor: Doctor
    responsible_doctor_id?: number
    responsible_doctor?: Doctor
    refSource_name?: string
    appointment_id?: number
    earlyEducation?: string
    medicalDischargeEducation: string
    admDischargeEducation?: string
    dischargeMethod_code?: string
    discharge_reason?: string
    status_code: string
}

export function genEncounter(): Encounter {
    return {
        id: 0,
        patient_id: 0,
        patient: genPatient(),
        registeredAt: '',
        class_code: '',
        unit_id: 0,
        unit: genUnit(),
        visitDate: '',
        adm_employee_id: 0,
        adm_employee: genEmployee(),
        appointment_doctor_id: 0,
        appointment_doctor: genDoctor(),
        medicalDischargeEducation: '',
        status_code: ''
    }
}

export interface EncounterCheckInDto {
    responsible_doctor_id: number
    responsibleArea_employee_id: number
}
