Files
website-enchun-mgr/docs/prd/planning-update-summary.md
pkupuk f6b806617e docs: add research assets, screenshots and guides
Include supplementary documentation, research notes on Lexical/UX, and setup guides.
2026-02-11 11:51:35 +08:00

322 lines
9.4 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.

# 規劃更新摘要 - Story 1.2 Payload CMS Collections
**更新日期:** 2025-01-30
**更新類型:** 詳細規劃調整
**影響範圍:** Story 1.2, 1.9, 1.10, 1.12
---
## 📊 執行摘要
根據用戶要求「調整規劃,更新相關的 stories」我已完成
1. ✅ 創建詳細的 Payload CMS 修改計劃
2. ✅ 更新 Story 1.2 執行計劃
3. ✅ 重新估算時間(減少 50%
4. ✅ 定義相關 Stories 依賴關係
---
## 📁 新增/更新的文檔
### 1. 新增文檔
**📄 `docs/prd/payload-cms-modification-plan.md`**
- **用途:** Story 1.2 的詳細實作指南
- **內容:**
- 7 個詳細任務定義Task 1.2.1 - 1.2.7
- 每個任務的完整代碼範例
- Webflow → Payload 欄位對應表
- 驗收標準和測試計劃
- 相關 Stories 依賴更新
### 2. 更新文檔
**📄 `docs/prd/epic-1-execution-plan.md`**
- **更新部分:** Story 1.2 詳細執行計劃
- **主要變更:**
- 重寫 Story 1.2 章節(原 74-280 行)
- 階段化實作計劃Phase 1-3
- Webflow 欄位對應表
- 角色權限矩陣
- 更新 Sprint 0 和 Sprint 1 時間估算
---
## 🎯 關鍵決策更新
### Story 1.2 時間估算
| 項目 | 原估計 | 更新後 | 變化 |
|------|--------|--------|------|
| Story 1.2 | 8-12 小時 | **4 小時** | -50% ~ -66% |
| Sprint 0 | 8-12 小時 | **2.5 小時** | -75% |
| Sprint 1 | 24-30 小時 | **3 小時** | -90% |
**理由:**
1. Payload CMS 架構清晰,修改簡單直接
2. Access control 模式一致,易於批量應用
3. 詳細計劃減少了不確定性和反覆修改
4. 大部分欄位是標準類型text/select/upload
### Story 1.2 任務結構
**原計劃:** 5 個 tasks定義模糊
**更新後:** 7 個 tasks詳細定義
| Phase | Task | 內容 | 時間 |
|-------|------|------|------|
| **Phase 1** | 1.2.1 | 創建 Portfolio Collection | 1 小時 |
| (Critical) | 1.2.2 | 完善 Categories Collection | 30 分鐘 |
| **Phase 2** | 1.2.3 | 完善 Posts Collection | 30 分鐘 |
| (Enhancement) | 1.2.4 | 完善 Users Collection | 30 分鐘 |
| **Phase 3** | 1.2.5 | 創建 Access Control 函數 | 30 分鐘 |
| (Security) | 1.2.6 | 應用 Access Control | 30 分鐘 |
| | 1.2.7 | 驗證和測試 | 1 小時 |
| **總計** | | | **4 小時** |
---
## 🔗 相關 Stories 依賴更新
### Story 1.9: Blog System更新
**新增依賴項:**
```diff
Story 1.9 依賴 Story 1.2 完成:
+ Categories.textColor/backgroundColor → category badge theming
+ Posts.excerpt → article list display150-200 字)
+ Posts.status → filter published postsdraft/review/published
```
**Task 1.9.2Blog Listing Page更新**
```diff
+ 從 Payload API 載入已發布文章where: { status: 'published' }
+ 顯示 category badge使用動態顏色 category.textColor/backgroundColor
+ 顯示文章摘要(使用 post.excerpt最多 200 字)
```
**Task 1.9.4Category Page更新**
```diff
+ 分類顏色主題(使用 category.textColor/backgroundColor
+ Badge 使用動態顏色而非固定顏色
+ 分類名稱顯示 category.nameEn如果存在
```
### Story 1.10: Portfolio更新
**新增依賴項:**
```diff
Story 1.10 依賴 Story 1.2 完成:
+ Portfolio collection 必須存在7 個欄位)
+ 所有欄位必須定義才能實作前端頁面
```
**Task 1.10.1Design Portfolio Architecture簡化**
```diff
- 決定是否使用 Payload CMS collection
+ Portfolio collection 已在 Story 1.2 創建Task 1.2.1
- 欄位規劃
+ 欄位已在 Story 1.2 定義:
+ title, slug, url, image, description, websiteType, tags
+ 此 Task 改為專注於前端路由和組件架構設計
```
**Task 1.10.2Implement Portfolio Listing Page更新**
```diff
+ Portfolio card 顯示:
+ - Project image (image 欄位)
+ - Project title (title 欄位)
+ - Description (description 欄位)
+ - Tags (tags array)
+ - Website type badge (websiteType 欄位)
```
### Story 1.12: Authentication更新
**新增依賴項:**
```diff
Story 1.12 依賴 Story 1.2 Phase 3 完成:
+ Users.role 欄位必須存在admin/editor
+ adminOnly/adminOrEditor 函數必須創建
+ 所有 Collections 必須應用 access control
```
**Task 1.12.5Implement Role-Based Access Control簡化**
```diff
- Users collection 添加 role 欄位
+ Users collection 已在 Story 1.2 Task 1.2.4 添加 role 欄位
- 建立 access/adminOnly.ts
+ access/adminOnly.ts 已在 Story 1.2 Task 1.2.5 創建
- 建立 access/adminOrEditor.ts
+ access/adminOrEditor.ts 已在 Story 1.2 Task 1.2.5 創建
- 更新 Collections 的 access rules
+ Collections 已在 Story 1.2 Task 1.2.6 應用 access rules
+ 此 Task 改為專注於測試驗證角色權限
```
---
## 📋 Collection 完成度總覽
### Story 1.2 完成後狀態
| Collection | 當前 | Story 1.2 後 | 新增欄位 |
|-----------|------|-------------|---------|
| Portfolio | 0% | **100%** ✅ | 7 個欄位 |
| Categories | 40% (2/6) | **100%** ✅ | +4 欄位 |
| Posts | 60% (9/13) | **100%** ✅ | +4 欄位 |
| Users | 70% (3/4) | **100%** ✅ | +1 欄位 |
| Media | 90% | **100%** ✅ | - |
| Pages | 100% | **100%** ✅ | - |
### Access Control 完成度
| 組件 | 當前 | Story 1.2 後 |
|------|------|-------------|
| Access 函數 | 3 個 | **5 個** ✅ |
| Collections 應用 | 部分 | **全部** ✅ |
| Globals 應用 | 無 | **完整** ✅ |
| 角色權限測試 | 無 | **完成** ✅ |
---
## 🔄 Sprint 調整影響
### Sprint 0: Infrastructure Completion
**調整前:**
- Story 1.1: 40 分鐘
- Story 1.2: 不明確
- 總計8-12 小時
**調整後:**
- Story 1.1: 40 分鐘
- Story 1.2 Phase 1: 1.5 小時
- **總計2.5 小時**-75%
**理由:** 專注於 Critical BlockersPortfolio + Categories解除 Story 1.9 和 1.10 的阻礙
### Sprint 1: Collections Completion
**調整前:**
- Story 1.2 完成: 不明確
- Story 1.3 遷移: 12-16 小時
- 總計24-30 小時
**調整後:**
- Story 1.2 Phase 2-3: 3 小時
- Story 1.3 遷移: 延後到 Sprint 2
- **總計3 小時**-90%
**理由:** 將 Story 1.2 拆分到 Sprint 0 和 Sprint 1先完善 Collections 再遷移內容
### Sprint 2: Migration & Layout新增建議
**建議內容:**
- Story 1.3: Content Migration Script (12-16 小時)
- Story 1.4: Header/Footer Components (8-10 小時)
- **總計20-26 小時**
**理由:** Collections 完成後,開始內容遷移和全局組件開發
---
## 📊 時間線總結
### Epic 1 整體時間估算
| 階段 | 原估計 | 更新後 | 變化 |
|------|--------|--------|------|
| Sprint 0 (Infra) | 8-12 hr | 2.5 hr | **-75%** |
| Sprint 1 (Collections) | 24-30 hr | 3 hr | **-90%** |
| Sprint 2 (Migration) | - | 20-26 hr | **新增** |
| Sprint 3-5 (Pages/Apps) | 90-120 hr | 90-120 hr | 無變化 |
| Sprint 6 (Production) | 40-50 hr | 40-50 hr | 無變化 |
| **總計** | **162-212 hr** | **155.5-201.5 hr** | **-4%** |
**關鍵變化:**
- Sprint 0 和 Sprint 1 時間大幅減少(詳細規劃的效果)
- 新增 Sprint 2 專注於內容遷移和全局組件
- 整體時間線略微縮短,但更有組織性
---
## ✅ 驗收清單
### Story 1.2 完成標準
#### Collection 完整性
- [ ] Portfolio: 7/7 欄位title, slug, url, image, description, websiteType, tags
- [ ] Categories: 6/6 欄位title, nameEn, order, textColor, backgroundColor, slug
- [ ] Posts: 13/13 欄位(含新增的 excerpt, ogImage, showInFooter, status
- [ ] Users: 4/4 欄位email, name, role, password
- [ ] Media: 100%
- [ ] Pages: 100%
#### Access Control 完整性
- [ ] 5 個 access 函數完整
- [ ] 7 個 collections/globals 應用 access rules
- [ ] 角色權限矩陣測試通過
- [ ] Admin 可完整權限Editor 僅內容管理
#### 功能驗收
- [ ] 所有 collections 在 admin panel 可見
- [ ] 所有欄位可編輯
- [ ] 型別生成成功(`pnpm generate:types`
- [ ] 開發環境正常運行
- [ ] R2 上傳測試通過
---
## 📝 後續行動建議
### 選項 A開始執行 Story 1.2(推薦)
**Phase 1 - Critical Blockers今天**
1. Task 1.2.1: 創建 Portfolio Collection (1 小時)
2. Task 1.2.2: 完善 Categories Collection (30 分鐘)
**預期成果:**
- Story 1.9 和 1.10 的阻礙解除
- Portfolio 和 Categories 可用於前端開發
### 選項 B繼續規劃其他 Stories
**可以並行規劃:**
- Story 1.3: Content Migration Script
- Story 1.4: Header/Footer Components
- Story 1.5-1.8: 頁面實作細節
### 選項 C調整整體計劃
**可能的調整:**
- 重新評估 Story 1.3 的優先級(是否先遷移還是先實作頁面)
- 調整 Sprint 結構
- 修改時間線
---
## 📚 參考文檔
**主要文檔:**
1. `docs/prd/payload-cms-modification-plan.md` - Story 1.2 詳細實作指南
2. `docs/prd/epic-1-execution-plan.md` - Epic 1 執行計劃(已更新)
3. `docs/prd/epic-1-stories-1.3-1.17-tasks.md` - Stories 1.3-1.17 任務定義
**相關文檔:**
4. `docs/prd/01-project-analysis.md` - 項目分析
5. `docs/prd/payload-cms-slimming-report.md` - Payload CMS 瘩身報告
**Payload CMS 官方文檔:**
- [Collections](https://payloadcms.com/docs/configuration/collections)
- [Access Control](https://payloadcms.com/docs/access-control/overview)
- [Field Types](https://payloadcms.com/docs/configuration/fields)
---
**文檔版本:** v1.0
**最後更新:** 2025-01-30
**適用於:** Payload CMS 3.59.1
**狀態:** ✅ 規劃完成,等待執行確認