# TakeoutSaaS 开发 TODO（自动维护）

> 说明：该文档用于记录本仓库待办与进度。我会在完成每个任务后更新标记状态，并尽量保持“一个功能点一个原子提交”。
>
> 状态标记：[x] 已完成 / [~] 部分完成 / [ ] 未开始

## 一期：套餐管理 MVP（已落地 + 待收口）

[x] 1. 套餐增删改：新建/编辑/复制套餐，支持草稿保存

- [x] 新建套餐（表单：基础信息 + 定价 + 权益配额）
- [x] 编辑套餐（同新增表单）
- [x] 复制套餐（基于现有套餐快速创建新套餐）
- [x] 删除套餐（软删）
- [x] 草稿保存（草稿/发布状态、草稿发布、回滚草稿）
- [x] 修复“保存草稿却变发布”根因（EF 默认值哨兵导致 insert 省略字段，已将发布状态默认值调整为草稿并补齐哨兵配置）

[x] 2. 上架体系：上架/下架、是否对外可见、是否允许新租户购买

- [x] 上架/下架（启用/禁用套餐，含二次确认与提示）
- [x] 是否对外可见（展示与可售解耦）
- [x] 是否允许新租户购买（可售开关与可见开关解耦）
- [x] 修复“新增时开关 false 无法落库”根因（EF 默认值哨兵导致 insert 省略字段，已将哨兵改为 true）

[~] 3. 价格与计费周期：月付/年付、阶梯价/按量计费

- [x] 月付/年付价格（`monthlyPrice` / `yearlyPrice`）
- [ ] 阶梯价/按量计费

[x] 4. 权益/配额配置：功能开关 + 数值配额（门店/账号/存储/短信/配送单量/更多）

- [x] 数值配额（门店数、账号数、存储、短信、配送单量）
- [x] 功能策略（`featurePoliciesJson`：可视化编辑 + JSON 预览，保留未知字段）
- [x] 商品/菜单上限
- [x] API 调用次数
- [x] 报表/导出权限
- [x] 打印/小票能力
- [x] 营销功能（优惠券/满减/会员/积分等开关）

[~] 5. 展示配置：卖点文案、推荐标识、排序、标签、对比页字段

- [x] 排序（`sortOrder`）
- [~] 卖点/描述（`description`）
- [x] 推荐标识（Recommended）
- [x] 标签（推荐/性价比/旗舰）
- [ ] （已移除）对比页展示字段配置（对比维度/顺序）
- [ ] 自助入驻选套餐页展示推荐/标签（公共套餐列表接口返回 isRecommended/tags + 前端展示/置顶）

[x] 6. 订阅关联视图：当前使用该套餐的租户数量、MRR/ARR 粗看、到期分布（运营常用）

- [x] 订阅/租户数量：活跃订阅数、总订阅数、使用租户数
- [x] 使用租户列表入口：抽屉列表（支持分页与搜索）
- [x] MRR/ARR 粗看
- [x] 到期分布（7/15/30 天到期租户数、到期列表入口）

[x] 7. 后端接口补齐（套餐使用统计/使用租户分页查询等）

[x] 8. 前端联调与回归（包含权限、空态、错误提示）

## 二期：上架与配置完善（建议）

- [x] 1. 草稿保存与发布流程（草稿/发布、回滚到草稿）
- [x] 2. 可见性/可售开关拆分（对外可见、允许新租户购买、已订阅不受影响说明）
- [x] 4. 权益/配额可视化编辑器（JSON 结构化编辑、Schema 校验、预设模板）
- [x] 5. 更多常用配额字段补齐（商品/菜单、API 次数、导出/报表、打印等）

## 三期：计费与权益策略（建议）

- [ ] 1. 阶梯价/按量计费（超配计费、账单明细）
- [ ] 2. 权益变更影响说明：升配/降配规则（立即/次周期）、影响范围提示
- [ ] 3. 超配策略（禁止/只读/按量计费/宽限期）

## 四期：商业化与合规增强（建议）

- [ ] 1. 附加计费（Add-ons）：短信包、存储包、额外门店/账号包、配送单量包（可叠加、单独定价）
- [ ] 2. 版本与历史：套餐版本号、变更记录、回滚、对已订阅租户的影响范围提示
- [ ] 3. 购买限制：可购买地区/行业、仅邀请可见、最大购买数量、是否允许叠加订阅
- [ ] 4. 订阅关联视图增强：MRR/ARR、到期分布、续费转化漏斗（运营常用）
- [ ] 5. 操作审计：谁改了套餐、何时改、改了什么（合规必备）
