# SQL 文件执行顺序文档（软删除标准化改造 + Admin 模块全量）

## 目标

为本次“软删除标准化改造（Schema + RLS + RPC）”提供**可直接执行**且**顺序准确**的数据库同步步骤，同时整理**全量 Admin 模块**对应的数据库文件，确保：

- 先补齐表字段与索引（避免 RPC/RLS 引用字段失败）；
- 再应用 RLS（确保查询默认过滤已软删数据）；
- 最后加载/替换 RPC（确保删除行为变更与审计字段写入生效）。

## 前置约束

- 执行账号需具备：`ALTER TABLE`、`CREATE INDEX`、`ALTER POLICY/CREATE POLICY`、`CREATE OR REPLACE FUNCTION` 等权限。
- **禁止并发执行**：建议串行执行，尤其是 RLS/RPC 部分。
- 若生产环境已存在同名对象：本次以 `CREATE OR REPLACE FUNCTION` 与 policy 更新为主，属于“覆盖式更新”。

---

## 第一阶段：Schema / Migration（必须先执行）

> 目的：补齐 `deleted_at/deleted_by/restored_at/restored_by` 字段与软删除索引，作为后续 RLS/RPC 的基础依赖。

| 序号 | 文件路径                                                                                   | 说明                   |
| :--: | :----------------------------------------------------------------------------------------- | :--------------------- |
|  1   | [`10_schema/99_soft_delete_migration_v1.sql`](./10_schema/99_soft_delete_migration_v1.sql) | 软删除字段迁移（核心） |

### 其他 Schema 文件（按业务域分类）

#### Admin 域

| 文件路径                                                                                 | 说明       |
| :--------------------------------------------------------------------------------------- | :--------- |
| [`10_schema/admin/ml_system_configs_v1.sql`](./10_schema/admin/ml_system_configs_v1.sql) | 系统配置表 |

#### Auth 域

| 文件路径                                                                                                     | 说明                                                         |
| :----------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- |
| [`10_schema/user/ak_auth_system_v1.sql`](./10_schema/user/ak_auth_system_v1.sql)                             | 认证系统表（roles/permissions/admin_roles/role_permissions） |
| [`10_schema/user/ak_users_add_phone_real_name_v1.sql`](./10_schema/user/ak_users_add_phone_real_name_v1.sql) | 用户扩展字段                                                 |
| [`10_schema/user/ak_users_finance_fields_v1.sql`](./10_schema/user/ak_users_finance_fields_v1.sql)           | 用户财务字段                                                 |
| [`10_schema/user/ak_users_constraints_fix_v1.sql`](./10_schema/user/ak_users_constraints_fix_v1.sql)         | 用户表约束修复                                               |

#### CMS 域

| 文件路径                                                                     | 说明           |
| :--------------------------------------------------------------------------- | :------------- |
| [`10_schema/cms/ml_cms_tables_v1.sql`](./10_schema/cms/ml_cms_tables_v1.sql) | CMS 内容管理表 |

#### Decoration 域

| 文件路径                                                                                 | 说明       |
| :--------------------------------------------------------------------------------------- | :--------- |
| [`10_schema/decoration/ak_diy_pages_v1.sql`](./10_schema/decoration/ak_diy_pages_v1.sql) | DIY 页面表 |

#### Delivery 域

| 文件路径                                                                                         | 说明       |
| :----------------------------------------------------------------------------------------------- | :--------- |
| [`10_schema/delivery/ak_delivery_system_v1.sql`](./10_schema/delivery/ak_delivery_system_v1.sql) | 配送系统表 |

#### Distribution 域

| 文件路径                                                                                                                                       | 说明         |
| :--------------------------------------------------------------------------------------------------------------------------------------------- | :----------- |
| [`10_schema/distribution/ak_distribution_agents_v1.sql`](./10_schema/distribution/ak_distribution_agents_v1.sql)                               | 分销代理表   |
| [`10_schema/distribution/ak_distribution_agent_applications_v1.sql`](./10_schema/distribution/ak_distribution_agent_applications_v1.sql)       | 代理申请表   |
| [`10_schema/distribution/ak_distribution_divisions_v1.sql`](./10_schema/distribution/ak_distribution_divisions_v1.sql)                         | 事业部表     |
| [`10_schema/distribution/ak_distribution_division_applications_v1.sql`](./10_schema/distribution/ak_distribution_division_applications_v1.sql) | 事业部申请表 |
| [`10_schema/distribution/ak_promoter_relations_v1.sql`](./10_schema/distribution/ak_promoter_relations_v1.sql)                                 | 推广员关系表 |
| [`10_schema/distribution/ak_commission_logs_v1.sql`](./10_schema/distribution/ak_commission_logs_v1.sql)                                       | 佣金日志表   |
| [`10_schema/distribution/ak_distribution_level_v1.sql`](./10_schema/distribution/ak_distribution_level_v1.sql)                                 | 分销等级表   |
| [`10_schema/distribution/ak_distribution_config_v1.sql`](./10_schema/distribution/ak_distribution_config_v1.sql)                               | 分销配置表   |

#### Finance 域

| 文件路径                                                                                   | 说明       |
| :----------------------------------------------------------------------------------------- | :--------- |
| [`10_schema/finance/ml_invoices_v1.sql`](./10_schema/finance/ml_invoices_v1.sql)           | 发票表     |
| [`10_schema/finance/ml_extract_v1.sql`](./10_schema/finance/ml_extract_v1.sql)             | 提现表     |
| [`10_schema/finance/ml_user_recharge_v1.sql`](./10_schema/finance/ml_user_recharge_v1.sql) | 用户充值表 |
| [`10_schema/finance/ml_user_bill_v1.sql`](./10_schema/finance/ml_user_bill_v1.sql)         | 用户账单表 |

#### Kefu 域

| 文件路径                                                                         | 说明       |
| :------------------------------------------------------------------------------- | :--------- |
| [`10_schema/kefu/ml_kefu_tables_v1.sql`](./10_schema/kefu/ml_kefu_tables_v1.sql) | 客服系统表 |

#### Marketing 域

| 文件路径                                                                                                               | 说明     |
| :--------------------------------------------------------------------------------------------------------------------- | :------- |
| [`10_schema/marketing/ak_lottery_live_v1.sql`](./10_schema/marketing/ak_lottery_live_v1.sql)                           | 直播抽奖 |
| [`10_schema/marketing/ak_marketing_signin_logs_v1.sql`](./10_schema/marketing/ak_marketing_signin_logs_v1.sql)         | 签到日志 |
| [`10_schema/marketing/ak_marketing_newcomer_config_v1.sql`](./10_schema/marketing/ak_marketing_newcomer_config_v1.sql) | 新人配置 |
| [`10_schema/marketing/ak_bargain_groupbuy_v1.sql`](./10_schema/marketing/ak_bargain_groupbuy_v1.sql)                   | 拼团砍价 |
| [`10_schema/marketing/ak_live_products_v1.sql`](./10_schema/marketing/ak_live_products_v1.sql)                         | 直播商品 |
| [`10_schema/marketing/ak_advanced_marketing_v1.sql`](./10_schema/marketing/ak_advanced_marketing_v1.sql)               | 高级营销 |
| [`10_schema/marketing/ak_marketing_checkin_configs_v1.sql`](./10_schema/marketing/ak_marketing_checkin_configs_v1.sql) | 签到配置 |
| [`10_schema/marketing/ak_recharge_management_v1.sql`](./10_schema/marketing/ak_recharge_management_v1.sql)             | 充值管理 |
| [`10_schema/marketing/ak_member_management_v1.sql`](./10_schema/marketing/ak_member_management_v1.sql)                 | 会员管理 |
| [`10_schema/marketing/ak_signin_configs_v1.sql`](./10_schema/marketing/ak_signin_configs_v1.sql)                       | 签到配置 |

#### Order 域

| 文件路径                                                                                             | 说明           |
| :--------------------------------------------------------------------------------------------------- | :------------- |
| [`10_schema/order/ml_orders_schema_update_v1.sql`](./10_schema/order/ml_orders_schema_update_v1.sql) | 订单表结构更新 |

#### Product 域

| 文件路径                                                                                                                                 | 说明                                                                      |
| :--------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |
| [`../../mall_sql/migrations/20260521_medical_mall_categories_v1.sql`](../../mall_sql/migrations/20260521_medical_mall_categories_v1.sql) | 医疗商城独立分类一体化迁移（含 Schema + RLS + 初始化 Seed，推荐优先执行） |
| [`10_schema/product/ml_products_ext_v1.sql`](./10_schema/product/ml_products_ext_v1.sql)                                                 | 商品扩展表                                                                |
| [`10_schema/product/ak_shipping_templates_v1.sql`](./10_schema/product/ak_shipping_templates_v1.sql)                                     | 运费模板                                                                  |
| [`10_schema/product/ak_product_member_prices_v1.sql`](./10_schema/product/ak_product_member_prices_v1.sql)                               | 会员价                                                                    |
| [`10_schema/product/ak_product_protections_v1.sql`](./10_schema/product/ak_product_protections_v1.sql)                                   | 商品保障                                                                  |
| [`10_schema/product/ak_product_templates_v1.sql`](./10_schema/product/ak_product_templates_v1.sql)                                       | 商品模板                                                                  |
| [`10_schema/product/ak_product_labels_v1.sql`](./10_schema/product/ak_product_labels_v1.sql)                                             | 商品标签                                                                  |

> 补充说明：若执行 [`../../mall_sql/migrations/20260521_medical_mall_categories_v1.sql`](../../mall_sql/migrations/20260521_medical_mall_categories_v1.sql)，则无需再重复执行 `10_schema/product/medical_mall_categories_v1.sql`、`20_rls/product/medical_mall_categories_rls_v1.sql` 与 `sql/seed_medical_mall_categories.sql` 的拆分版内容。

#### User 域

| 文件路径                                                                         | 说明       |
| :------------------------------------------------------------------------------- | :--------- |
| [`10_schema/user/ak_user_labels_v1.sql`](./10_schema/user/ak_user_labels_v1.sql) | 用户标签表 |
| [`10_schema/user/ak_user_groups_v1.sql`](./10_schema/user/ak_user_groups_v1.sql) | 用户分组表 |
| [`10_schema/user/ak_user_levels_v1.sql`](./10_schema/user/ak_user_levels_v1.sql) | 用户等级表 |

---

## 第二阶段：RLS（在 Schema 之后执行）

> 目的：将各模块策略统一补齐 `deleted_at IS NULL`，确保默认查询排除已软删记录。

按域执行（域之间无强依赖，可按任意顺序；但**必须在 RPC 之前**执行）：

### Auth 域（新增）

| 文件路径                                                             | 说明                                 |
| :------------------------------------------------------------------- | :----------------------------------- |
| [`20_rls/auth/ak_auth_rls_v1.sql`](./20_rls/auth/ak_auth_rls_v1.sql) | 权限/角色表 RLS 策略（禁止直接访问） |

### Admin 域

| 文件路径                                                                                   | 说明         |
| :----------------------------------------------------------------------------------------- | :----------- |
| [`20_rls/admin/ml_system_configs_rls_v1.sql`](./20_rls/admin/ml_system_configs_rls_v1.sql) | 系统配置 RLS |

### CMS 域

| 文件路径                                                         | 说明         |
| :--------------------------------------------------------------- | :----------- |
| [`20_rls/cms/ml_cms_rls_v1.sql`](./20_rls/cms/ml_cms_rls_v1.sql) | CMS 内容 RLS |

### Decoration 域

| 文件路径                                                                                     | 说明     |
| :------------------------------------------------------------------------------------------- | :------- |
| [`20_rls/decoration/ml_decoration_rls_v1.sql`](./20_rls/decoration/ml_decoration_rls_v1.sql) | 装修 RLS |

### Delivery 域

| 文件路径                                                                             | 说明     |
| :----------------------------------------------------------------------------------- | :------- |
| [`20_rls/delivery/ak_delivery_rls_v1.sql`](./20_rls/delivery/ak_delivery_rls_v1.sql) | 配送 RLS |

### Distribution 域

| 文件路径                                                                                             | 说明     |
| :--------------------------------------------------------------------------------------------------- | :------- |
| [`20_rls/distribution/ml_distribution_rls_v1.sql`](./20_rls/distribution/ml_distribution_rls_v1.sql) | 分销 RLS |

### Finance 域

| 文件路径                                                                                     | 说明         |
| :------------------------------------------------------------------------------------------- | :----------- |
| [`20_rls/finance/ml_extract_rls_v1.sql`](./20_rls/finance/ml_extract_rls_v1.sql)             | 提现 RLS     |
| [`20_rls/finance/ml_invoices_rls_v1.sql`](./20_rls/finance/ml_invoices_rls_v1.sql)           | 发票 RLS     |
| [`20_rls/finance/ml_user_bill_rls_v1.sql`](./20_rls/finance/ml_user_bill_rls_v1.sql)         | 用户账单 RLS |
| [`20_rls/finance/ml_user_recharge_rls_v1.sql`](./20_rls/finance/ml_user_recharge_rls_v1.sql) | 用户充值 RLS |

### Kefu 域

| 文件路径                                                             | 说明     |
| :------------------------------------------------------------------- | :------- |
| [`20_rls/kefu/ml_kefu_rls_v1.sql`](./20_rls/kefu/ml_kefu_rls_v1.sql) | 客服 RLS |

### Marketing 域

| 文件路径                                                                                                       | 说明           |
| :------------------------------------------------------------------------------------------------------------- | :------------- |
| [`20_rls/marketing/ml_marketing_others_rls_v1.sql`](./20_rls/marketing/ml_marketing_others_rls_v1.sql)         | 其他营销 RLS   |
| [`20_rls/marketing/ml_marketing_activities_rls_v1.sql`](./20_rls/marketing/ml_marketing_activities_rls_v1.sql) | 营销活动 RLS   |
| [`20_rls/marketing/ml_coupon_templates_rls_v1.sql`](./20_rls/marketing/ml_coupon_templates_rls_v1.sql)         | 优惠券模板 RLS |

### User 域

| 文件路径                                                                           | 说明         |
| :--------------------------------------------------------------------------------- | :----------- |
| [`20_rls/user/ak_user_labels_rls_v1.sql`](./20_rls/user/ak_user_labels_rls_v1.sql) | 用户标签 RLS |
| [`20_rls/user/ak_user_groups_rls_v1.sql`](./20_rls/user/ak_user_groups_rls_v1.sql) | 用户分组 RLS |
| [`20_rls/user/ak_user_levels_rls_v1.sql`](./20_rls/user/ak_user_levels_rls_v1.sql) | 用户等级 RLS |

---

## 第三阶段：RPC（最后执行）

> 目的：将“删除”统一切换为软删除（写入 `deleted_at/deleted_by`），并在需要的函数中补齐级联软删。

按域执行（域之间一般无强依赖；但建议按下列顺序，先基础权限/用户，再业务模块）：

---

### 3.1 Admin 域（系统管理）

#### 查询类

| 文件路径                                                                                               | 说明         |
| :----------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/admin/rpc_admin_get_system_info_v1.sql`](./30_rpc/admin/rpc_admin_get_system_info_v1.sql)     | 获取系统信息 |
| [`30_rpc/admin/rpc_admin_get_overall_stats_v1.sql`](./30_rpc/admin/rpc_admin_get_overall_stats_v1.sql) | 获取整体统计 |
| [`30_rpc/admin/rpc_admin_system_config_get_v1.sql`](./30_rpc/admin/rpc_admin_system_config_get_v1.sql) | 获取系统配置 |

#### 保存/更新类

| 文件路径                                                                                                 | 说明         |
| :------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/admin/rpc_admin_system_config_save_v1.sql`](./30_rpc/admin/rpc_admin_system_config_save_v1.sql) | 保存系统配置 |

---

### 3.2 Auth 域（权限认证）

#### 权限校验辅助函数（新增）

| 文件路径                                                                                         | 说明                   |
| :----------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/auth/fn_check_admin_permission_v1.sql`](./30_rpc/auth/fn_check_admin_permission_v1.sql) | 通用 RBAC 权限校验函数 |

#### 查询类

| 文件路径                                                                                                 | 说明             |
| :------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/auth/rpc_admin_get_permission_list_v1.sql`](./30_rpc/auth/rpc_admin_get_permission_list_v1.sql) | 获取权限列表     |
| [`30_rpc/auth/rpc_admin_get_role_list_v1.sql`](./30_rpc/auth/rpc_admin_get_role_list_v1.sql)             | 获取角色列表     |
| [`30_rpc/auth/rpc_admin_get_admin_list_v1.sql`](./30_rpc/auth/rpc_admin_get_admin_list_v1.sql)           | 获取管理员列表   |
| [`30_rpc/auth/get_current_user_role_v1.sql`](./30_rpc/auth/get_current_user_role_v1.sql)                 | 获取当前用户角色 |

#### 保存/更新类

| 文件路径                                                                                         | 说明     |
| :----------------------------------------------------------------------------------------------- | :------- |
| [`30_rpc/auth/rpc_admin_save_permission_v1.sql`](./30_rpc/auth/rpc_admin_save_permission_v1.sql) | 保存权限 |
| [`30_rpc/auth/rpc_admin_save_role_v1.sql`](./30_rpc/auth/rpc_admin_save_role_v1.sql)             | 保存角色 |

#### 删除类（软删除）

| 文件路径                                                                                             | 说明               |
| :--------------------------------------------------------------------------------------------------- | :----------------- |
| [`30_rpc/auth/rpc_admin_delete_permission_v1.sql`](./30_rpc/auth/rpc_admin_delete_permission_v1.sql) | 删除权限（软删除） |
| [`30_rpc/auth/rpc_admin_delete_role_v1.sql`](./30_rpc/auth/rpc_admin_delete_role_v1.sql)             | 删除角色（软删除） |

#### 用户处理类

| 文件路径                                                                     | 说明          |
| :--------------------------------------------------------------------------- | :------------ |
| [`30_rpc/auth/handle_new_user_v3.sql`](./30_rpc/auth/handle_new_user_v3.sql) | 处理新用户 v3 |
| [`30_rpc/auth/handle_new_user_v2.sql`](./30_rpc/auth/handle_new_user_v2.sql) | 处理新用户 v2 |

---

### 3.3 CMS 域（内容管理）

#### 查询类

| 文件路径                                                                                                   | 说明             |
| :--------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/cms/rpc_admin_article_list_v1.sql`](./30_rpc/cms/rpc_admin_article_list_v1.sql)                   | 获取文章列表     |
| [`30_rpc/cms/rpc_admin_article_get_detail_v1.sql`](./30_rpc/cms/rpc_admin_article_get_detail_v1.sql)       | 获取文章详情     |
| [`30_rpc/cms/rpc_admin_article_category_list_v1.sql`](./30_rpc/cms/rpc_admin_article_category_list_v1.sql) | 获取文章分类列表 |

#### 保存/更新类

| 文件路径                                                                                                   | 说明         |
| :--------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/cms/rpc_admin_article_save_v1.sql`](./30_rpc/cms/rpc_admin_article_save_v1.sql)                   | 保存文章     |
| [`30_rpc/cms/rpc_admin_article_category_save_v1.sql`](./30_rpc/cms/rpc_admin_article_category_save_v1.sql) | 保存文章分类 |

#### 删除类（软删除）

| 文件路径                                                                                                       | 说明                   |
| :------------------------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/cms/rpc_admin_article_delete_v1.sql`](./30_rpc/cms/rpc_admin_article_delete_v1.sql)                   | 删除文章（软删除）     |
| [`30_rpc/cms/rpc_admin_article_category_delete_v1.sql`](./30_rpc/cms/rpc_admin_article_category_delete_v1.sql) | 删除文章分类（软删除） |

#### 状态管理类

| 文件路径                                                                                                               | 说明             |
| :--------------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/cms/rpc_admin_article_set_status_v1.sql`](./30_rpc/cms/rpc_admin_article_set_status_v1.sql)                   | 设置文章状态     |
| [`30_rpc/cms/rpc_admin_article_category_set_status_v1.sql`](./30_rpc/cms/rpc_admin_article_category_set_status_v1.sql) | 设置文章分类状态 |

---

### 3.4 Decoration 域（装修管理）

#### 查询类

| 文件路径                                                                                                         | 说明              |
| :--------------------------------------------------------------------------------------------------------------- | :---------------- |
| [`30_rpc/decoration/rpc_admin_get_diy_page_list_v1.sql`](./30_rpc/decoration/rpc_admin_get_diy_page_list_v1.sql) | 获取 DIY 页面列表 |

#### 保存/更新类

| 文件路径                                                                                                 | 说明          |
| :------------------------------------------------------------------------------------------------------- | :------------ |
| [`30_rpc/decoration/rpc_admin_save_diy_page_v1.sql`](./30_rpc/decoration/rpc_admin_save_diy_page_v1.sql) | 保存 DIY 页面 |
| [`30_rpc/decoration/rpc_admin_set_home_page_v1.sql`](./30_rpc/decoration/rpc_admin_set_home_page_v1.sql) | 设置首页      |

#### 删除类（软删除）

| 文件路径                                                                                                     | 说明                    |
| :----------------------------------------------------------------------------------------------------------- | :---------------------- |
| [`30_rpc/decoration/rpc_admin_delete_diy_page_v1.sql`](./30_rpc/decoration/rpc_admin_delete_diy_page_v1.sql) | 删除 DIY 页面（软删除） |

---

### 3.5 Delivery 域（配送管理）

#### 查询类

| 文件路径                                                                                                                     | 说明             |
| :--------------------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/delivery/rpc_admin_get_delivery_staff_list_v1.sql`](./30_rpc/delivery/rpc_admin_get_delivery_staff_list_v1.sql)     | 获取配送员列表   |
| [`30_rpc/delivery/rpc_admin_get_delivery_station_list_v1.sql`](./30_rpc/delivery/rpc_admin_get_delivery_station_list_v1.sql) | 获取配送站点列表 |

#### 保存/更新类

| 文件路径                                                                                                             | 说明         |
| :------------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/delivery/rpc_admin_save_delivery_staff_v1.sql`](./30_rpc/delivery/rpc_admin_save_delivery_staff_v1.sql)     | 保存配送员   |
| [`30_rpc/delivery/rpc_admin_save_delivery_station_v1.sql`](./30_rpc/delivery/rpc_admin_save_delivery_station_v1.sql) | 保存配送站点 |

#### 删除类（软删除）

| 文件路径                                                                                                                 | 说明                   |
| :----------------------------------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/delivery/rpc_admin_delete_delivery_staff_v1.sql`](./30_rpc/delivery/rpc_admin_delete_delivery_staff_v1.sql)     | 删除配送员（软删除）   |
| [`30_rpc/delivery/rpc_admin_delete_delivery_station_v1.sql`](./30_rpc/delivery/rpc_admin_delete_delivery_station_v1.sql) | 删除配送站点（软删除） |

---

### 3.6 Distribution 域（分销管理）

#### 查询类

| 文件路径                                                                                                                   | 说明             |
| :------------------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/distribution/rpc_admin_get_agent_list_v1.sql`](./30_rpc/distribution/rpc_admin_get_agent_list_v1.sql)             | 获取代理列表     |
| [`30_rpc/distribution/rpc_admin_get_agent_apply_list_v1.sql`](./30_rpc/distribution/rpc_admin_get_agent_apply_list_v1.sql) | 获取代理申请列表 |
| [`30_rpc/distribution/rpc_admin_get_division_list_v1.sql`](./30_rpc/distribution/rpc_admin_get_division_list_v1.sql)       | 获取事业部列表   |
| [`30_rpc/distribution/rpc_admin_get_promoter_list_v1.sql`](./30_rpc/distribution/rpc_admin_get_promoter_list_v1.sql)       | 获取推广员列表   |

#### 保存/更新类

| 文件路径                                                                                                     | 说明       |
| :----------------------------------------------------------------------------------------------------------- | :--------- |
| [`30_rpc/distribution/rpc_admin_save_agent_v1.sql`](./30_rpc/distribution/rpc_admin_save_agent_v1.sql)       | 保存代理   |
| [`30_rpc/distribution/rpc_admin_save_division_v1.sql`](./30_rpc/distribution/rpc_admin_save_division_v1.sql) | 保存事业部 |

#### 删除类（软删除）

| 文件路径                                                                                                         | 说明                 |
| :--------------------------------------------------------------------------------------------------------------- | :------------------- |
| [`30_rpc/distribution/rpc_admin_delete_agent_v1.sql`](./30_rpc/distribution/rpc_admin_delete_agent_v1.sql)       | 删除代理（软删除）   |
| [`30_rpc/distribution/rpc_admin_delete_division_v1.sql`](./30_rpc/distribution/rpc_admin_delete_division_v1.sql) | 删除事业部（软删除） |

#### 处理/审核类

| 文件路径                                                                                                                 | 说明         |
| :----------------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/distribution/rpc_admin_process_agent_apply_v1.sql`](./30_rpc/distribution/rpc_admin_process_agent_apply_v1.sql) | 处理代理申请 |

---

### 3.7 Finance 域（财务管理）

#### 查询/统计类

| 文件路径                                                                                                         | 说明         |
| :--------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/finance/rpc_admin_balance_stats_v1.sql`](./30_rpc/finance/rpc_admin_balance_stats_v1.sql)               | 余额统计     |
| [`30_rpc/finance/rpc_admin_balance_distribution_v1.sql`](./30_rpc/finance/rpc_admin_balance_distribution_v1.sql) | 余额分布     |
| [`30_rpc/finance/rpc_admin_balance_trend_v1.sql`](./30_rpc/finance/rpc_admin_balance_trend_v1.sql)               | 余额趋势     |
| [`30_rpc/finance/rpc_admin_finance_bill_summary_v1.sql`](./30_rpc/finance/rpc_admin_finance_bill_summary_v1.sql) | 财务账单汇总 |
| [`30_rpc/finance/rpc_admin_finance_overview_v1.sql`](./30_rpc/finance/rpc_admin_finance_overview_v1.sql)         | 财务概览     |
| [`30_rpc/finance/rpc_admin_invoice_list_v1.sql`](./30_rpc/finance/rpc_admin_invoice_list_v1.sql)                 | 发票列表     |
| [`30_rpc/finance/rpc_admin_user_bill_list_v1.sql`](./30_rpc/finance/rpc_admin_user_bill_list_v1.sql)             | 用户账单列表 |
| [`30_rpc/finance/rpc_admin_recharge_list_v1.sql`](./30_rpc/finance/rpc_admin_recharge_list_v1.sql)               | 充值列表     |
| [`30_rpc/finance/rpc_admin_extract_list_v1.sql`](./30_rpc/finance/rpc_admin_extract_list_v1.sql)                 | 提现列表     |

#### 处理/审核类

| 文件路径                                                                                               | 说明     |
| :----------------------------------------------------------------------------------------------------- | :------- |
| [`30_rpc/finance/rpc_admin_invoice_process_v1.sql`](./30_rpc/finance/rpc_admin_invoice_process_v1.sql) | 处理发票 |
| [`30_rpc/finance/rpc_admin_recharge_audit_v1.sql`](./30_rpc/finance/rpc_admin_recharge_audit_v1.sql)   | 审核充值 |
| [`30_rpc/finance/rpc_admin_extract_review_v1.sql`](./30_rpc/finance/rpc_admin_extract_review_v1.sql)   | 审核提现 |

---

### 3.8 Kefu 域（客服管理）

#### 查询类

| 文件路径                                                                                                         | 说明             |
| :--------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/kefu/rpc_admin_kefu_account_list_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_account_list_v1.sql)             | 获取客服账号列表 |
| [`30_rpc/kefu/rpc_admin_kefu_auto_reply_list_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_auto_reply_list_v1.sql)       | 获取自动回复列表 |
| [`30_rpc/kefu/rpc_admin_kefu_word_list_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_list_v1.sql)                   | 获取客服话术列表 |
| [`30_rpc/kefu/rpc_admin_kefu_word_category_list_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_category_list_v1.sql) | 获取话术分类列表 |
| [`30_rpc/kefu/rpc_admin_kefu_feedback_list_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_feedback_list_v1.sql)           | 获取反馈列表     |

#### 保存/更新类

| 文件路径                                                                                                         | 说明         |
| :--------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/kefu/rpc_admin_kefu_account_save_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_account_save_v1.sql)             | 保存客服账号 |
| [`30_rpc/kefu/rpc_admin_kefu_auto_reply_save_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_auto_reply_save_v1.sql)       | 保存自动回复 |
| [`30_rpc/kefu/rpc_admin_kefu_word_save_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_save_v1.sql)                   | 保存客服话术 |
| [`30_rpc/kefu/rpc_admin_kefu_word_category_save_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_category_save_v1.sql) | 保存话术分类 |

#### 删除类（软删除）

| 文件路径                                                                                                             | 说明                   |
| :------------------------------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/kefu/rpc_admin_kefu_account_delete_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_account_delete_v1.sql)             | 删除客服账号（软删除） |
| [`30_rpc/kefu/rpc_admin_kefu_auto_reply_delete_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_auto_reply_delete_v1.sql)       | 删除自动回复（软删除） |
| [`30_rpc/kefu/rpc_admin_kefu_word_delete_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_delete_v1.sql)                   | 删除客服话术（软删除） |
| [`30_rpc/kefu/rpc_admin_kefu_word_category_delete_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_word_category_delete_v1.sql) | 删除话术分类（软删除） |

#### 状态/处理类

| 文件路径                                                                                                               | 说明             |
| :--------------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/kefu/rpc_admin_kefu_account_set_status_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_account_set_status_v1.sql)       | 设置客服账号状态 |
| [`30_rpc/kefu/rpc_admin_kefu_auto_reply_set_status_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_auto_reply_set_status_v1.sql) | 设置自动回复状态 |
| [`30_rpc/kefu/rpc_admin_kefu_feedback_process_v1.sql`](./30_rpc/kefu/rpc_admin_kefu_feedback_process_v1.sql)           | 处理客服反馈     |

---

### 3.9 Marketing 域（营销管理）

#### 查询/统计类

| 文件路径                                                                                                         | 说明         |
| :--------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/marketing/rpc_admin_get_integral_stats_v1.sql`](./30_rpc/marketing/rpc_admin_get_integral_stats_v1.sql) | 获取积分统计 |

---

### 3.10 Order 域（订单管理）

#### 查询/统计类

| 文件路径                                                                                                       | 说明         |
| :------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/order/rpc_admin_order_list_v1.sql`](./30_rpc/order/rpc_admin_order_list_v1.sql)                       | 获取订单列表 |
| [`30_rpc/order/rpc_admin_order_source_stats_v1.sql`](./30_rpc/order/rpc_admin_order_source_stats_v1.sql)       | 订单来源统计 |
| [`30_rpc/order/rpc_admin_order_type_stats_v1.sql`](./30_rpc/order/rpc_admin_order_type_stats_v1.sql)           | 订单类型统计 |
| [`30_rpc/order/rpc_admin_order_stats_v1.sql`](./30_rpc/order/rpc_admin_order_stats_v1.sql)                     | 订单统计     |
| [`30_rpc/order/rpc_admin_order_trend_v1.sql`](./30_rpc/order/rpc_admin_order_trend_v1.sql)                     | 订单趋势     |
| [`30_rpc/order/rpc_admin_write_off_record_list_v1.sql`](./30_rpc/order/rpc_admin_write_off_record_list_v1.sql) | 核销记录列表 |
| [`30_rpc/order/rpc_admin_refund_order_list_v1.sql`](./30_rpc/order/rpc_admin_refund_order_list_v1.sql)         | 退款订单列表 |
| [`30_rpc/order/rpc_admin_cashier_order_list_v1.sql`](./30_rpc/order/rpc_admin_cashier_order_list_v1.sql)       | 收银订单列表 |

---

### 3.11 Product 域（商品管理）

#### 查询/统计类

| 文件路径                                                                                                       | 说明         |
| :------------------------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/product/rpc_admin_get_product_reviews_v1.sql`](./30_rpc/product/rpc_admin_get_product_reviews_v1.sql) | 获取商品评价 |
| [`30_rpc/product/rpc_admin_product_count_stats_v1.sql`](./30_rpc/product/rpc_admin_product_count_stats_v1.sql) | 商品数量统计 |
| [`30_rpc/product/rpc_admin_product_analytics_v1.sql`](./30_rpc/product/rpc_admin_product_analytics_v1.sql)     | 商品分析     |
| [`30_rpc/product/rpc_admin_product_trend_v1.sql`](./30_rpc/product/rpc_admin_product_trend_v1.sql)             | 商品趋势     |

#### 删除类（软删除）

| 文件路径                                                                                               | 说明                   |
| :----------------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/product/rpc_admin_category_delete_v1.sql`](./30_rpc/product/rpc_admin_category_delete_v1.sql) | 删除商品分类（软删除） |

---

### 3.12 User 域（用户管理）

#### 查询类

| 文件路径                                                                                         | 说明             |
| :----------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/user/rpc_admin_user_label_list_v1.sql`](./30_rpc/user/rpc_admin_user_label_list_v1.sql) | 获取用户标签列表 |
| [`30_rpc/user/rpc_admin_user_group_list_v1.sql`](./30_rpc/user/rpc_admin_user_group_list_v1.sql) | 获取用户分组列表 |
| [`30_rpc/user/rpc_admin_user_level_list_v1.sql`](./30_rpc/user/rpc_admin_user_level_list_v1.sql) | 获取用户等级列表 |

#### 保存/更新类

| 文件路径                                                                                         | 说明         |
| :----------------------------------------------------------------------------------------------- | :----------- |
| [`30_rpc/user/rpc_admin_user_label_save_v1.sql`](./30_rpc/user/rpc_admin_user_label_save_v1.sql) | 保存用户标签 |
| [`30_rpc/user/rpc_admin_user_group_save_v1.sql`](./30_rpc/user/rpc_admin_user_group_save_v1.sql) | 保存用户分组 |
| [`30_rpc/user/rpc_admin_user_level_save_v1.sql`](./30_rpc/user/rpc_admin_user_level_save_v1.sql) | 保存用户等级 |

#### 删除类（软删除）

| 文件路径                                                                                             | 说明                   |
| :--------------------------------------------------------------------------------------------------- | :--------------------- |
| [`30_rpc/user/rpc_admin_user_label_delete_v1.sql`](./30_rpc/user/rpc_admin_user_label_delete_v1.sql) | 删除用户标签（软删除） |
| [`30_rpc/user/rpc_admin_user_group_delete_v1.sql`](./30_rpc/user/rpc_admin_user_group_delete_v1.sql) | 删除用户分组（软删除） |
| [`30_rpc/user/rpc_admin_user_level_delete_v1.sql`](./30_rpc/user/rpc_admin_user_level_delete_v1.sql) | 删除用户等级（软删除） |

#### 状态/可见性管理类

| 文件路径                                                                                                       | 说明               |
| :------------------------------------------------------------------------------------------------------------- | :----------------- |
| [`30_rpc/user/rpc_admin_user_label_set_status_v1.sql`](./30_rpc/user/rpc_admin_user_label_set_status_v1.sql)   | 设置用户标签状态   |
| [`30_rpc/user/rpc_admin_user_group_set_status_v1.sql`](./30_rpc/user/rpc_admin_user_group_set_status_v1.sql)   | 设置用户分组状态   |
| [`30_rpc/user/rpc_admin_user_level_set_status_v1.sql`](./30_rpc/user/rpc_admin_user_level_set_status_v1.sql)   | 设置用户等级状态   |
| [`30_rpc/user/rpc_admin_user_level_set_visible_v1.sql`](./30_rpc/user/rpc_admin_user_level_set_visible_v1.sql) | 设置用户等级可见性 |

---

### 3.13 Analytics 域（数据分析）

| 文件路径                                                                                                                             | 说明             |
| :----------------------------------------------------------------------------------------------------------------------------------- | :--------------- |
| [`30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sql`](./30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sql) | 用户性别分布分析 |

---

## 执行后验证清单

- 字段存在性：抽查任一涉及表，确认 `deleted_at/deleted_by` 字段存在。
- 索引存在性：确认 `idx_<table>_soft_delete` 存在。
- RLS 生效：软删一条数据后，使用正常查询路径确认该条记录不可见。
- RPC 行为：调用任一删除 RPC，确认：
  - 记录未被物理删除；
  - `deleted_at` 写入；
  - `deleted_by` 写入（管理员 ID）；
  - 需要级联的对象其关联数据同步被软删。
