Files
CFDivePlatform/openspec/specs/swagger-admin-api/spec.md
T
a620906209 4feeeff94a
Tests / PHP 8.2 (pull_request) Failing after 2s
Tests / PHP 8.3 (pull_request) Failing after 2s
pull requests / uneditable (pull_request_target) Failing after 0s
docs:補全所有 API 端點 Swagger 文件(73 個端點)
- 修正 AuthApiDoc.php 路徑錯位(/register/member → /member/register 等)
  及 change-password 方法(Post→Put);補上 POST /logout、GET /user
- 新增 AuthSupplementDoc.php(Google OAuth 2 端點)
- 新增 PublicApiDoc.php(共用 Schema + 公開課程 4 端點)
- 新增 MemberApiDoc.php(預約、評價、通知共 13 端點)
- 新增 ProviderApiDoc.php(課程、圖片、時段、預約管理共 18 端點)
- 新增 AdminApiDoc.php(統計、會員/教練/課程管理共 16 端點)
- 更新 README.md
- 歸檔 swagger-api-docs-completion change,同步主規格

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 01:17:25 +08:00

41 lines
1.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.
## ADDED Requirements
### Requirement: Admin 端點 Swagger 文件
`app/Docs/AdminApiDoc.php` SHALL 文件化所有需要 Admin Bearer token 的管理端點。
#### Scenario: Admin stats 端點文件化
- **WHEN** 開啟 Swagger UI
- **THEN** `GET /admin/stats` 端點有文件,response 包含 `total_members``total_providers``total_offers`403 非 admin 亦有定義
#### Scenario: Admin 會員管理端點文件化
- **WHEN** 開啟 Swagger UI
- **THEN** 以下端點均有文件,標示 `security: bearerAuth`
- `GET /admin/members`(分頁 response,含 member_profile
- `GET /admin/members/{id}`
- `PUT /admin/members/{id}/toggle-active`response: is_active 新狀態)
- `GET /admin/check-member/{id}`
#### Scenario: Admin 教練管理端點文件化
- **WHEN** 開啟 Swagger UI
- **THEN** 以下端點均有文件:
- `GET /admin/providers`(分頁 response,含 provider_profile
- `GET /admin/providers/{id}`
- `PUT /admin/providers/{id}/toggle-active`
- `PUT /admin/providers/{id}/toggle-verified`response: is_verified 新狀態)
- `GET /admin/check-provider/{id}`
#### Scenario: Admin 課程、預約、評價管理端點文件化
- **WHEN** 開啟 Swagger UI
- **THEN** 以下端點均有文件:
- `GET /admin/offers`(分頁 response
- `DELETE /admin/offers/{id}`
- `GET /admin/bookings`(分頁 response
- `PUT /admin/bookings/{id}/complete`
- `GET /admin/reviews`(分頁 response,含 per_page 參數,最大 100
- `DELETE /admin/reviews/{id}`