export type GenderCode = 'male' | 'female' | 'not-stated' | 'unknown'
export type ReligionCode = 'islam' | 'protestan' | 'katolik' | 'hindu' | 'buda' | 'konghucu'
export type EducationCode = 'TS' | 'TK' | 'SD' | 'SMP' | 'SMA' | 'D1' | 'D2' | 'D3' | 'S1' | 'S2' | 'S3'
export type OccupationCode = 'tidak-bekerja' | 'pns' | 'polisi' | 'tni' | 'guru' | 'wiraswasta' | 'kary-swasta' | 'lainnya'
export type AddressLocationTypeCode = 'identity' | 'domicile'
export type PersonContactType = 'phone' | 'm-phone' | 'email' | 'fax'
export type RelationshipCode = 'mother' | 'father' | 'uncle' | 'aunt' | 'sibling' | 'gd-mother' | 'gd-father' | 'child' | 'nephew' | 'gd-child' | 'friend' | 'spouse' | 'self' | 'other'
export type MaritalStatus_Code = 'S' | 'M' | 'D' | 'W'

export const genderCodes: Record<GenderCode, string> = {
  male: 'Laki',
  female: 'Perempuan',
  'not-stated': 'Tidak Disebutkan',
  unknown: 'Tidak Diketahui',
}

export const religionCodes: Record<ReligionCode, string> = {
  islam: 'Islam',
  protestan: 'Protestan',
  katolik: 'Katolik',
  hindu: 'Hindu',
  buda: 'Buda',
  konghucu: 'Konghucu',
}

export const educationCodes: Record<EducationCode, string> = {
  TS: 'TS',
  TK: 'TK',
  SD: 'SD',
  SMP: 'SMP',
  SMA: 'SMA',
  D1: 'D1',
  D2: 'D2',
  D3: 'D3',
  S1: 'S1',
  S2: 'S2',
  S3: 'S3',
}

export const occupationCodes: Record<OccupationCode, string> = {
  'tidak-bekerja': 'Tidak Bekerja',
  pns: 'Pegawai Negeri Sipil',
  polisi: 'Polisi',
  tni: 'TNI',
  guru: 'Guru',
  wiraswasta: 'Wiraswasta',
  'kary-swasta': 'Karyawan Swasta',
  lainnya: 'Lainnya',
}

export const personContactTypes: Record<PersonContactType, string> = {
  phone: 'Telepon',
  'm-phone': 'HP / Ponsel',
  email: 'Email',
  fax: 'Fax',
}

export const relationshipCodes: Record<RelationshipCode, string> = {
  mother: 'Ibu',
  father: 'Ayah',
  uncle: 'Paman',
  aunt: 'Bibi',
  sibling: 'Saudara',
  'gd-mother': 'Nenek',
  'gd-father': 'Kakek',
  child: 'Anak',
  nephew: 'Keponakan',
  'gd-child': 'Cucu',
  friend: 'Teman',
  spouse: 'Pasangan (Suami / Istri)',
  self: 'Diri sendiri',
  other: 'Lainnya',
}

export const maritalStatusCodes: Record<MaritalStatus_Code, string> = {
  S: 'Single (Belum Kawin)',
  M: 'Married (Kawin)',
  D: 'Divorced (Cerai Hidup)',
  W: 'Widowed (Cerai Mati)',
}
