Files
quyun-v2/docs/plan.md
2026-01-26 09:04:29 +08:00

93 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Implementation Plan: Staging Seed Data
**Branch**: `main` | **Date**: 2026-01-26 | **Spec**: `docs/staging_smoke_test.md`
**Input**: staging 冒烟测试需要快速准备基础数据。
**Note**: 本计划遵循 `docs/templates/plan-template.md`
## Summary
扩展 Go seed 命令,生成 staging 冒烟测试所需的最小数据集(租户、用户、超管、内容、订单、优惠券、通知等),确保前后台关键页面可快速验证。
## Technical Context
**Language/Version**: Go 1.22
**Primary Dependencies**: Fiber, GORM-Gen
**Storage**: PostgreSQL + Redis
**Testing**: `go test ./...`
**Target Platform**: Linux server (staging)
**Project Type**: Web application (backend + frontend)
**Performance Goals**: N/A
**Constraints**: 不修改生成文件Service/Controller 规范保持不变
**Scale/Scope**: 最小可用冒烟数据
## Constitution Check
- 遵循 `backend/llm.txt` 规则(不改生成文件、中文注释、服务层规范)。
- seed 逻辑仅在 `backend/app/commands/seed/seed.go` 修改。
## Project Structure
### Documentation (this feature)
```text
docs/
└── plan.md
```
### Source Code (repository root)
```text
backend/
└── app/commands/seed/seed.go
```
**Structure Decision**: 使用现有 seed 命令注入 staging 数据。
## Plan Phases
### Phase 1: 数据范围确认
- 明确需覆盖的冒烟用例与最小数据集。
### Phase 2: Seed 扩展实现
- 增加超管用户、租户成员、订单与内容访问等基础数据。
- 确保幂等运行(重复执行不报错)。
### Phase 3: 文档与验证
- 记录 seed 运行方式与输出数据说明。
## Tasks
**Format**: `[ID] [P?] [Story] Description`
### Phase 1: Foundational
- [x] T001 [US0] 明确冒烟必需数据项(用户/租户/内容/订单/通知)
### Phase 2: Seed 扩展
- [x] T010 [US1] 创建超管用户与角色
- [x] T011 [US1] 创建租户成员与权限关系
- [x] T012 [US1] 创建订单、订单项、内容访问记录
- [x] T013 [US1] 创建通知模板/系统通知
### Phase 3: Docs
- [x] T020 [US2] 更新 seed 说明文档/输出示例
## Dependencies
- Phase 1 → Phase 2 → Phase 3。
## Acceptance Criteria
- `go run ./backend/main.go seed` 可成功生成数据。
- seed 后 staging 冒烟清单主要页面可打开并有数据展示。
- 重复运行 seed 不产生致命错误。
## Risks
- 真实 staging 数据冲突(唯一索引)。
- 订单/访问数据缺失导致部分页面空白。
## Complexity Tracking
无。