Files
CFDivePlatform/openspec/changes/provider-verification-gaps/tasks.md
T
a620906209 90d0a57e73
Run Tests / test (pull_request) Successful in 1m56s
feat(offers): 補齊 provider-verification 可見性缺口——子端點過濾與預約入口檢查
實作 openspec change provider-verification-gaps(8/8 tasks):
- schedules/reviews publicList 套用 visibleToPublic,隱藏課程回 404
- MemberBookingController::store Layer 1 擋未驗證教練課程的新預約(422)
- 政策:教練被取消驗證只擋新預約,既有 pending/confirmed/completed 照常
- 主規格 Notes 已知限制轉為正式 Requirements
- 測試 +5(可見性子端點 3、預約入口 2),既有 booking/review 測試 helper
  補 verified ProviderProfile
- 容器內全套件 151 passed / 388 assertions;另以 demo 資料端到端驗證
  (已驗證教練 200/200/200、未驗證 404/404/404)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 22:48:59 +08:00

20 lines
1.2 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.
## 1. 公開子端點套用可見性
- [x] 1.1 `ScheduleController::publicList``DivingOffer::findOrFail($offerId)``DivingOffer::visibleToPublic()->findOrFail($offerId)`
- [x] 1.2 `ReviewController::publicList`:同 1.1
- [x] 1.3 [整合測試] `DivingOfferVisibilityTest` 擴充:未驗證教練課程的 `/schedules` 回 404、`/reviews` 回 404、已驗證教練兩端點正常(3~4 案例)
## 2. 預約入口檢查
- [x] 2.1 `MemberBookingController::store` Layer 1 增加課程可預約檢查(provider_id null 或教練已驗證),不符回 422 `此課程目前不開放預約`
- [x] 2.2 [整合測試] `BookingLifecycleTest` 擴充:未驗證教練課程的 schedule 不可建立預約(422)、已驗證可預約、教練被取消驗證後既有 confirmed 預約聊天/完課照常(3 案例)
## 3. 規格同步
- [x] 3.1 `openspec/specs/provider-verification/spec.md`:新增「公開子端點套用相同可見性」「未驗證教練課程不可建立新預約」requirements(含既有預約不受影響 scenario),移除 Notes 已知限制段落
## 4. 驗證
- [x] 4.1 容器內 `php artisan test` 全綠(基準:146 passed
- [x] 4.2 手動驗證 DemoSeeder 未驗證教練課程:時段/評價查詢 404、無法新預約