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(), frontTitle: '[MOCK] dr. ', name: 'Agus Iwan Setiawan', endTitle: 'Sp.Bo', } } export function parseName(person: Person): string { if (!person) return '' const fullName = [person.frontTitle, person.name, person.endTitle].filter(Boolean).join(' ').trim() return fullName }