import { type Base, genBase } from "./_base"
import type { PersonAddress } from "./person-address"
import type { PersonContact } from "./person-contact"
import type { PersonRelative } from "./person-relative"
import type { Ethnic } from './ethnic'
import type { Language } from './language'
import type { Regency } from './regency'

export interface Person extends Base {
  name: string
  // alias?: string
  frontTitle?: string
  endTitle?: string
  birthDate?: string
  birthRegency_code?: string
  gender_code?: string
  residentIdentityNumber?: string
  passportNumber?: string
  drivingLicenseNumber?: string
  religion_code?: string
  education_code?: string
  occupation_code?: string
  occupation_name?: string
  ethnic_code?: string
  language_code?: string
  nationality?: string
  communicationIssueStatus?: boolean
  disability?: string
  residentIdentityFileUrl?: string
  passportFileUrl?: string
  drivingLicenseFileUrl?: string
  familyIdentityFileUrl?: string

  // preload data for detail patient
  birthRegency?: Regency | null
  addresses?: PersonAddress[] | null
  contacts?: PersonContact[] | null
  relatives?: PersonRelative[] | null
  ethnic?: Ethnic | null
  language?: Language | null
}

export function genPerson(): Person {
  return {
    ...genBase(),
    name: '',
  }
}
