# patient_relation — 患者-患者关系边(联系人/亲属/转介绍人)
#
# 消费 fact_customer_referee_out(一行 = 本人 与 一个 referee 的关系)。
# upsert 资源(无 emits,同 patient):落 PatientRelation 表,不进 transaction/fact。
#   patientExternalId = referee.patient_id          (本人,须解析到 PAC patient)
#   relatedExternalId = referee.referee_patient_id  (关系人 host id,始终保留)
#   relationship      = referee_relationship_name 归一到枚举(本人视角:relatedPatient 是本人的 X)
#
# 关系人姓名/电话不在此存 —— 关系人本身也是 patient,读时从 relatedPatient 现取(零冗余)。
canonical: patient_relation

primary:
  table: fact_customer_referee_out
  key: patient_id            # 非真 PK;去重靠 PatientRelation @@unique(patientId, relatedExternalId, relationship)

field_mapping:
  patientExternalId:  patient_id
  relatedExternalId:  referee_patient_id
  relationship:       referee_relationship_name   # 中文关系名 → enum_mapping 归一

# host 中文关系名 → PAC 枚举(本人视角:对方是本人的 X)。全量摄入,不过滤关系类型。
enum_mapping:
  relationship:
    配偶:     spouse
    爸爸:     father
    妈妈:     mother
    子女:     child
    爷爷:     grandparent
    奶奶:     grandparent
    外公:     grandparent
    外婆:     grandparent
    孙子女:   grandchild
    外孙子女: grandchild
    兄弟:     sibling
    姊妹:     sibling
    姐弟:     sibling
    兄妹:     sibling
    朋友:     friend
    其他亲属: other
    其他:     other
    _default: other
