Add Projects, Schedule, and Invite modules with home routing.
Migrate project management, schedule management, and photographer invitation flows from placeholders, including project image OSS upload and shared business models. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
31
suixinkan/Features/Projects/Projects.md
Normal file
31
suixinkan/Features/Projects/Projects.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Projects 模块业务逻辑
|
||||
|
||||
## 模块职责
|
||||
|
||||
Projects 模块负责首页项目相关入口:
|
||||
- `pm`、`project_edit`:摄影师项目管理。
|
||||
- `pm_manager`:店铺项目管理。
|
||||
|
||||
模块只保存项目列表、详情、编辑表单和上传中的临时状态,不写入 `AppSession`、`AccountContext`、TabBar 或首页全局状态。
|
||||
|
||||
## 摄影师项目
|
||||
|
||||
`ProjectManagementViewModel` 管理摄影师项目列表、搜索、分页、详情入口和删除动作。列表请求依赖当前景区 ID,缺少景区时清空本模块列表并停止请求。
|
||||
|
||||
`ProjectEditorViewModel` 管理新建和编辑表单。项目封面、轮播图先通过 `OSSUploadService.uploadProjectImage` 上传到 `project/yyyyMMdd/scenicId/...` 路径,再把最终 URL 提交给项目创建或编辑接口。
|
||||
|
||||
## 店铺项目
|
||||
|
||||
`StoreProjectManagementViewModel` 管理店铺项目列表和可管理景区。店铺项目按业务账号 ID 查询,缺少用户 ID 时不请求。
|
||||
|
||||
`StoreProjectEditorViewModel` 支持多点位项目和押金项目两种提交路径。多点位项目提交景区、点位、展示图和项目套餐;押金项目提交门店、押金金额、底片数量等字段。
|
||||
|
||||
## 接口边界
|
||||
|
||||
`ProjectAPI` 只封装项目模块需要的接口,包括摄影师项目列表/详情/创建/编辑/删除,以及店铺项目列表/详情/创建/更新/删除和可管理景区列表。
|
||||
|
||||
样片上传需要的轻量项目选择复用共享 `PhotographerProjectItem`,但不反向依赖 Projects 页面状态。
|
||||
|
||||
## 缓存边界
|
||||
|
||||
项目图片临时数据、OSS STS、编辑表单和分页状态都不落盘。网络图片展示继续交给 `RemoteImage` / Kingfisher。
|
||||
Reference in New Issue
Block a user