-- ============================================================
-- 迁移脚本：修正 dwd_assistant_service_log.site_assistant_id 映射源
-- 日期：2026-02-20
-- 问题：site_assistant_id 错误映射自 ODS order_assistant_id（订单级助教明细 ID），
--       应映射自 ODS site_assistant_id（门店维度助教档案 ID）。
-- 修正：
--   1. FACT_MAPPINGS 中 site_assistant_id 的 ODS 源从 order_assistant_id 改为 site_assistant_id
--   2. order_assistant_id 列已存在于 DWD 表中，由同名列自动映射，无需 DDL 变更
--   3. 更新 COMMENT 以反映正确的 ODS 来源
-- 后续操作：需重新执行 DWD_LOAD_FROM_ODS 任务以修正历史数据
-- ============================================================

BEGIN;

-- 更新 site_assistant_id 的列注释，修正 ODS 来源说明
COMMENT ON COLUMN dwd.dwd_assistant_service_log.site_assistant_id IS
    '【说明】门店维度的助教档案 ID，关联 assistant_accounts_master.id。'
    '     【示例】2946266869435205。'
    '     【ODS来源】assistant_service_records - site_assistant_id。'
    '     【JSON字段】assistant_service_records.json - data.orderAssistantDetails - site_assistant_id。';

-- 更新 order_assistant_id 的列注释，明确其为订单级 ID
COMMENT ON COLUMN dwd.dwd_assistant_service_log.order_assistant_id IS
    '【说明】订单中助教项目明细的内部 ID（订单级），与 site_assistant_id（档案级）不同。'
    '     【示例】2957788717240005。'
    '     【ODS来源】assistant_service_records - order_assistant_id。'
    '     【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_assistant_id。';

COMMIT;

-- ============================================================
-- 回滚脚本（如需撤销）：
-- BEGIN;
-- -- 恢复原始 COMMENT
-- COMMENT ON COLUMN dwd.dwd_assistant_service_log.site_assistant_id IS
--     '【说明】标识类 ID 字段，用于关联/定位相关实体。     【示例】2957788717240005。     【ODS来源】assistant_service_records - order_assistant_id。';
-- COMMENT ON COLUMN dwd.dwd_assistant_service_log.order_assistant_id IS
--     '【说明】标识类 ID 字段，用于关联/定位相关实体。     【示例】2957788717240005。     【ODS来源】assistant_service_records - order_assistant_id。';
-- COMMIT;
-- ============================================================

-- ============================================================
-- 验证 SQL（迁移后执行）：
--
-- 1. 确认 site_assistant_id 注释已更新
-- SELECT col_description(
--     (SELECT oid FROM pg_class WHERE relname = 'dwd_assistant_service_log' AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'dwd')),
--     (SELECT attnum FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'dwd_assistant_service_log' AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'dwd')) AND attname = 'site_assistant_id')
-- );
--
-- 2. 确认 order_assistant_id 列存在且注释已更新
-- SELECT col_description(
--     (SELECT oid FROM pg_class WHERE relname = 'dwd_assistant_service_log' AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'dwd')),
--     (SELECT attnum FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'dwd_assistant_service_log' AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'dwd')) AND attname = 'order_assistant_id')
-- );
--
-- 3. 确认重新加载后 site_assistant_id 与 order_assistant_id 值不同（抽样）
-- SELECT site_assistant_id, order_assistant_id,
--        (site_assistant_id = order_assistant_id) AS same
-- FROM dwd.dwd_assistant_service_log
-- LIMIT 20;
-- ============================================================
