# patient_relation — FRIDAY 患者-患者关系边(customer_referee_circle → patient_relations 独立表)
#
# 源表双向成对存储(A→B 与 B→A 各一行,互为视角)。upsert 资源(无 emits),同 jvs-dw。
#
# ── 关系码 = 官方枚举(源码实锤,2026-07-20)──
# friday-saas/customer …/enums/RecommendRelationshipEnum.java:
#   1配偶 2爸爸 3子女 4兄弟 5爷爷 6孙子女 7朋友 8其他亲属 9姐妹 10妈妈 11奶奶
#   12姐弟 13兄妹 14其他 15外公 16外婆 17外孙子女
# ⚠️ 语义方向(该类 reverseValue() + 年龄差数据双证):存储的码 = **本人(customer)是
#   推荐人(referee)的 X**。PAC patient_relation 契约要"对方是本人的 X" → 此处映射 = 逆关系:
#   码2(本人是对方爸爸)→对方是本人的 child;码3(本人是对方子女)→对方是本人的父/母
#   (按对方性别拆,transforms 已 lookup 对方 sex 拼 "码|性别" 键);余类推。
# (早期统计推断大multi命中,唯一错:码8 其他亲属曾误标 friend,本版修正为 other。)
canonical: patient_relation

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

field_mapping:
  patientExternalId:  customer_id
  relatedExternalId:  referee_patient_id
  relationship:       rel_sex_key      # "码|对方性别" → 下方 enum_mapping 逆向归一

enum_mapping:
  relationship:
    # 1 配偶(对称)
    "1|1":  spouse
    "1|2":  spouse
    "1|":   spouse
    # 2 本人是对方爸爸 / 10 妈妈 → 对方是本人的 child
    "2|1":  child
    "2|2":  child
    "2|":   child
    "10|1": child
    "10|2": child
    "10|":  child
    # 3 本人是对方子女 → 对方是本人的父/母(按对方性别;性别缺 → other 不硬猜)
    "3|1":  father
    "3|2":  mother
    # 4 兄弟 / 9 姐妹 / 12 姐弟 / 13 兄妹 → sibling(对称)
    "4|1":  sibling
    "4|2":  sibling
    "4|":   sibling
    "9|1":  sibling
    "9|2":  sibling
    "9|":   sibling
    "12|1": sibling
    "12|2": sibling
    "12|":  sibling
    "13|1": sibling
    "13|2": sibling
    "13|":  sibling
    # 5 爷爷 / 11 奶奶 / 15 外公 / 16 外婆(本人是对方祖辈)→ 对方是本人的 grandchild
    "5|1":  grandchild
    "5|2":  grandchild
    "5|":   grandchild
    "11|1": grandchild
    "11|2": grandchild
    "11|":  grandchild
    "15|1": grandchild
    "15|2": grandchild
    "15|":  grandchild
    "16|1": grandchild
    "16|2": grandchild
    "16|":  grandchild
    # 6 孙子女 / 17 外孙子女(本人是对方孙辈)→ 对方是本人的 grandparent
    "6|1":  grandparent
    "6|2":  grandparent
    "6|":   grandparent
    "17|1": grandparent
    "17|2": grandparent
    "17|":  grandparent
    # 7 朋友
    "7|1":  friend
    "7|2":  friend
    "7|":   friend
    # 8 其他亲属 / 14 其他 / NULL / 未知码
    _default: other
