fix(account): 补上电竞绑定映射漏掉的 game_not_bound(连生产库才发现的)

把生产库克隆到本地做部署演练时,拉了三列绑定状态的**真实取值全集**,发现
`esports_bind_status` 里存在 `game_not_bound`(生产 26 行),而我的映射表里没有它
—— 会被归成 `unknown`,可它明明在说「没绑定」。

第一版映射只覆盖了文档里举的几个例子。**教训:映射表必须拿真实取值全集核对。**

修法:Python 映射与迁移 `0044` 的 CASE 同步补上 `game_not_bound → unbound`
(两者有逐字比对用例,不会分叉),并新增一条用**生产实测取值全集**驱动的用例
(17 + 11 + 9 个取值),以后往这三列加新取值时会被提醒确认语义,
而不是默默变成 `unknown`。

已在生产克隆库上验证:电竞列 unbound 从 0 变成 26(正是那批)。
This commit is contained in:
yml2213
2026-10-04 17:49:02 +08:00
parent eec42aa8a7
commit 4c1fe0c84f
3 changed files with 108 additions and 0 deletions
@@ -87,6 +87,7 @@ def normalise_esports_bind_status(bind) -> None:
'esports_qr_created',
'esports_role_switching'
) THEN 'pending'
WHEN esports_bind_status = 'game_not_bound' THEN 'unbound'
ELSE 'unknown'
END
"""
+5
View File
@@ -105,6 +105,11 @@ LEGACY_ESPORTS_BIND_MAP: dict[str, str] = {
"esports_bind_confirming": BIND_PENDING,
"esports_qr_created": BIND_PENDING,
"esports_role_switching": BIND_PENDING,
# ⚠️ 这一条是**连生产库看真实数据**才发现的:电竞列里确实存在
# `game_not_bound`(生产 26 行)。漏了它就会被归成 `unknown`,
# 而它明明在说「没绑定」。教训:映射表必须拿**真实取值全集**核对,
# 不能只看文档里举的几个例子。
"game_not_bound": BIND_UNBOUND,
}
LEGACY_XPD_BIND_MAP: dict[str, str] = {