-- ============================================================================
-- 表：ods.group_buy_package_details
-- 来源：QueryPackageCouponInfo 详情接口
-- 说明：团购套餐详情 ODS 层，存储每个 couponId 的详情原始数据
-- ============================================================================

CREATE TABLE IF NOT EXISTS ods.group_buy_package_details (
    -- 主键
    coupon_id           BIGINT       NOT NULL,

    -- 结构化业务字段（来自 data.groupPurchasePackage）
    package_name        TEXT,
    duration            INTEGER,
    start_time          TIMESTAMPTZ,
    end_time            TIMESTAMPTZ,
    add_start_clock     TEXT,
    add_end_clock       TEXT,
    is_enabled          INTEGER,
    is_delete           INTEGER,
    site_id             BIGINT,
    tenant_id           BIGINT,
    create_time         TIMESTAMPTZ,
    creator_name        TEXT,

    -- JSONB 数组字段
    table_area_ids      JSONB,
    table_area_names    JSONB,
    assistant_services  JSONB,
    groupon_site_infos  JSONB,
    package_services    JSONB,
    coupon_details_list JSONB,

    -- ETL 元数据
    content_hash        TEXT,
    payload             JSONB,
    fetched_at          TIMESTAMPTZ  DEFAULT now(),

    -- 约束
    CONSTRAINT pk_group_buy_package_details PRIMARY KEY (coupon_id)
);

-- 表注释
COMMENT ON TABLE ods.group_buy_package_details
    IS '团购套餐详情 ODS：QueryPackageCouponInfo 原始数据';

-- 主键 / 结构化字段注释
COMMENT ON COLUMN ods.group_buy_package_details.coupon_id
    IS '团购套餐 ID（= groupPurchasePackage.id），主键';
COMMENT ON COLUMN ods.group_buy_package_details.package_name
    IS '团购套餐名称';
COMMENT ON COLUMN ods.group_buy_package_details.duration
    IS '台费计时时长（秒）';
COMMENT ON COLUMN ods.group_buy_package_details.start_time
    IS '可用日期开始';
COMMENT ON COLUMN ods.group_buy_package_details.end_time
    IS '可用日期结束';
COMMENT ON COLUMN ods.group_buy_package_details.add_start_clock
    IS '可用时段开始（如 "00:00:00"）';
COMMENT ON COLUMN ods.group_buy_package_details.add_end_clock
    IS '可用时段结束（如 "1.00:00:00"）';
COMMENT ON COLUMN ods.group_buy_package_details.is_enabled
    IS '是否启用（1=启用, 0=禁用）';
COMMENT ON COLUMN ods.group_buy_package_details.is_delete
    IS '是否已删除（1=已删除, 0=正常）';
COMMENT ON COLUMN ods.group_buy_package_details.site_id
    IS '店铺 ID';
COMMENT ON COLUMN ods.group_buy_package_details.tenant_id
    IS '租户 ID';
COMMENT ON COLUMN ods.group_buy_package_details.create_time
    IS '创建时间';
COMMENT ON COLUMN ods.group_buy_package_details.creator_name
    IS '创建人';

-- JSONB 数组字段注释
COMMENT ON COLUMN ods.group_buy_package_details.table_area_ids
    IS '可用台区 ID 列表（来自 groupPurchasePackage.tableAreaId）';
COMMENT ON COLUMN ods.group_buy_package_details.table_area_names
    IS '可用台区名称列表（来自 groupPurchasePackage.tableAreaNameList）';
COMMENT ON COLUMN ods.group_buy_package_details.assistant_services
    IS '助教服务关联数组（来自 packageCouponAssistants，含 skillId/assistantLevel/assistantDuration）';
COMMENT ON COLUMN ods.group_buy_package_details.groupon_site_infos
    IS '关联门店信息数组（来自 grouponSiteInfos，含 siteId/siteName）';
COMMENT ON COLUMN ods.group_buy_package_details.package_services
    IS '套餐服务数组（来自 packagePackageService，待调研，可能为空）';
COMMENT ON COLUMN ods.group_buy_package_details.coupon_details_list
    IS '券明细数组（来自 packageCouponDetailsList，待调研，可能为空）';

-- ETL 元数据字段注释
COMMENT ON COLUMN ods.group_buy_package_details.content_hash
    IS '业务字段内容哈希，用于变更检测';
COMMENT ON COLUMN ods.group_buy_package_details.payload
    IS '详情接口完整原始 JSON 响应';
COMMENT ON COLUMN ods.group_buy_package_details.fetched_at
    IS 'ETL 拉取时间戳';
