# dim_groupbuy_package_ex 团购套餐扩展表

> 生成时间：2026-01-28

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | dwd |
| 表名 | dim_groupbuy_package_ex |
| 主键 | groupbuy_package_id, scd2_start_time |
| 主表 | dim_groupbuy_package |
| 记录数 | 34 |
| 说明 | 团购套餐的扩展配置，包含使用时段、台区限制、套餐类型等详细信息 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 主键 | 说明 |
|------|--------|------|------|------|------|
| 1 | groupbuy_package_id | BIGINT | NO | PK | 套餐 ID → dim_groupbuy_package |
| 2 | site_name | VARCHAR(100) | YES | | 门店名称快照。**当前值**: "朗朗桌球" |
| 3 | usable_count | INTEGER | YES | | 可使用次数（当前数据全为 0，表示不限次） |
| 4 | date_type | INTEGER | YES | | 日期类型。**枚举值**: 1(34)=**[含义待确认]** |
| 5 | usable_range | VARCHAR(255) | YES | | 可用日期范围描述（当前数据全为空） |
| 6 | date_info | VARCHAR(255) | YES | | 日期信息 |
| 7 | start_clock | VARCHAR(16) | YES | | 可用开始时间。**枚举值**: "00:00:00"(29), "10:00:00"(4), "23:00:00"(1) |
| 8 | end_clock | VARCHAR(16) | YES | | 可用结束时间。**枚举值**: "1.00:00:00"(29)=次日0点, "23:59:59"(3), "1.02:00:00"(2)=次日2点 |
| 9 | add_start_clock | VARCHAR(16) | YES | | 附加时段开始时间 |
| 10 | add_end_clock | VARCHAR(16) | YES | | 附加时段结束时间 |
| 11 | area_tag_type | INTEGER | YES | | 区域标记类型。**枚举值**: 1(34)=**[含义待确认]** |
| 12 | table_area_id | BIGINT | YES | | 台区 ID（当前数据全为 0） |
| 13 | tenant_table_area_id | BIGINT | YES | | 租户级台区 ID（当前数据全为 0） |
| 14 | table_area_id_list | VARCHAR(512) | YES | | 台区 ID 列表（当前数据全为空） |
| 15 | group_type | INTEGER | YES | | 团购类型。**枚举值**: 1(34)=**[含义待确认]** |
| 16 | system_group_type | INTEGER | YES | | 系统团购类型。**枚举值**: 1(34)=**[含义待确认]** |
| 17 | package_type | INTEGER | YES | | 套餐类型。**枚举值**: 1(26)=普通套餐 **[待确认]**, 2(8)=VIP套餐 **[待确认]** |
| 18 | effective_status | INTEGER | YES | | 生效状态。**枚举值**: 1(24)=有效, 3(10)=失效 **[待确认]** |
| 19 | max_selectable_categories | INTEGER | YES | | 最大可选分类数（当前数据全为 0） |
| 20 | creator_name | VARCHAR(100) | YES | | 创建人。**样本值**: "店长:郑丽珊", "管理员：郑丽珊" |
| 21 | tenant_coupon_sale_order_item_id | BIGINT | YES | | 租户券销售订单项 ID |
| 22 | scd2_start_time | TIMESTAMPTZ | NO | PK | SCD2 版本生效时间 |
| 23 | scd2_end_time | TIMESTAMPTZ | YES | | SCD2 版本失效时间 |
| 24 | scd2_is_current | INTEGER | YES | | 当前版本标记 |
| 25 | scd2_version | INTEGER | YES | | 版本号 |
| 26 | table_area_ids | JSONB | YES | | 可用台区 ID 列表（来自详情接口 tableAreaId） |
| 27 | table_area_names | JSONB | YES | | 可用台区名称列表（来自详情接口 tableAreaNameList） |
| 28 | assistant_services | JSONB | YES | | 助教服务关联数组（来自详情接口 packageCouponAssistants） |
| 29 | groupon_site_infos | JSONB | YES | | 关联门店信息数组（来自详情接口 grouponSiteInfos） |

> 字段 26-29 由迁移脚本 `db/etl_feiqiu/migrations/2026-03-05__add_detail_fields_to_dim_groupbuy_package_ex.sql` 新增，数据来源为 `ods.group_buy_package_details`（通过 LEFT JOIN `coupon_id = groupbuy_package_id` 合并）。

## 样本数据

| groupbuy_package_id | start_clock | end_clock | package_type | effective_status | creator_name |
|--------------------|-------------|-----------|--------------|------------------|--------------|
| 2798905767676933 | 00:00:00 | 1.00:00:00 | 2 | 1 | 店长:郑丽珊 |
| 2798901295615045 | 00:00:00 | 1.00:00:00 | 2 | 3 | 店长:郑丽珊 |
| 2798731703045189 | 00:00:00 | 1.00:00:00 | 1 | 1 | 店长:郑丽珊 |

## 使用说明

**版本与最新值**
本表为 SCD2 维度表，版本字段：scd2_start_time / scd2_end_time / scd2_is_current / scd2_version。

- 最新版本：scd2_is_current = 1
- 按业务主键取最新：按 scd2_start_time 倒序

```sql
-- 取某业务主键的最新版本
SELECT *
FROM dwd.dim_groupbuy_package_ex
WHERE groupbuy_package_id = <value>
ORDER BY scd2_start_time DESC
LIMIT 1;
```
**使用示例**
```sql
-- 关联主表与扩展表
SELECT m.package_name, m.duration_seconds, e.start_clock, e.end_clock, e.effective_status
FROM dwd.dim_groupbuy_package m
JOIN dwd.dim_groupbuy_package_ex e
  ON m.groupbuy_package_id = e.groupbuy_package_id
  AND m.scd2_start_time = e.scd2_start_time
WHERE m.scd2_is_current = 1;
```
