# cfg_skill_type 课程类型配置表

> 生成时间：2026-03-24

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | dws |
| 表名 | cfg_skill_type |
| 主键 | skill_type_id（自增） |
| 唯一键 | skill_id |
| 数据来源 | 手工维护，对应飞球系统的课程/技能类型 |
| 更新频率 | 按需（新增课程类型时） |
| 说明 | 将飞球系统的 skill_id 映射到业务课程分类（BASE/BONUS），供 ETL 到店判定、工资计算、绩效统计使用 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | skill_type_id | SERIAL | NO | 自增主键 |
| 2 | skill_id | BIGINT | NO | 飞球系统技能 ID（唯一） |
| 3 | skill_name | VARCHAR | YES | 技能名称（来自飞球系统） |
| 4 | course_type_code | VARCHAR | NO | 课程分类代码：BASE（基础课）/ BONUS（附加课/超休/激励课） |
| 5 | course_type_name | VARCHAR | NO | 课程分类中文名 |
| 6 | is_active | BOOLEAN | NO | 是否启用（默认 true） |
| 7 | description | TEXT | YES | 备注说明 |
| 8 | created_at | TIMESTAMPTZ | NO | 创建时间 |
| 9 | updated_at | TIMESTAMPTZ | NO | 更新时间 |

## 当前数据（截至 2026-03-24）

| skill_id | skill_name | course_type_code | 来源说明 |
|----------|-----------|-----------------|---------|
| 2790683529513797 | 基础课 | BASE | 飞球系统原始课程类型（2026-03-24 补录） |
| 2790683529513798 | 附加课 | BONUS | 飞球系统原始课程类型（2026-03-24 补录） |
| 2791903611396869 | 台球基础陪打 | BASE | 初始种子数据 |
| 2807440316432197 | 台球超休服务 | BONUS | 初始种子数据 |
| 2807440316432198 | 包厢服务 | BASE | 初始种子数据 |
| 3039912271463941 | 包厢课 | BASE | 飞球系统原始课程类型（2026-03-24 补录） |

## 业务口径

- `course_type_code = 'BONUS'` 用于 WBI/NCI 到店判定：settle_type=3 的商城订单，仅当关联了 BONUS 类型的助教服务记录时才算"到店"
- `course_type_code = 'BASE'` 用于基础课工资计算（按助教等级计价）
- `course_type_code = 'BONUS'` 用于附加课工资计算（固定 190 元/小时）

## 下游依赖

| 消费方 | 用途 |
|--------|------|
| `member_index_base._build_visit_condition_sql()` | WBI/NCI 到店判定 |
| `index_verifier.visit_members` CTE | 指数验证器到店范围 |
| 助教工资计算任务 | 区分基础课/附加课计价 |
| 助教绩效统计 | 按课程类型分类统计服务时长 |

## 维护注意事项

- 飞球系统新增课程类型时，必须同步在此表补录，否则相关订单会被 WBI 到店判定漏掉
- 2026-03-24 发现 3 条缺失记录导致 113 名会员、3766 条服务记录的到店判定失效
