ATP - گردشکار ماژولار پرونده (GET /api/v1/invention-cases/{invention_case_id}/workflow/)
Endpoint
GET /api/v1/invention-cases/{invention_case_id}/workflow/
هدف آزمون
دریافت projection گردشکار ماژولار پرونده (جایگزین transition-stage؛ ADR-0011).
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ایجاد یا انتخاب invention case
- GET /workflow/ با access token
- بررسی modules و status اولین ماژول
- poll پس از رویدادهای async برای تغییر status
معرفی ویژگی
endpoint کاننیکال برای UI و tooling. workflow key، ماژولها (information_collection، context_completion، prior_art_collection، drafting، review، export_ready) و status هر ماژول را برمیگرداند.
- workflow.key: مثلاً patent_drafting
- modules[]: key، status (ready | not_started | completed | …)، capabilities
- جایگزین POST transition-stage که حذف شده است
- مکمل GET progress و GET workflow-state است
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
GET /api/v1/invention-cases/{invention_case_id}/workflow/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: پرونده تازه
- ایجاد case
- GET workflow
- بررسی modules[0].key="information_collection"
- بررسی status در ready یا not_started
سناریو 4: endpoint حذفشده
- POST /transition-stage/ با target_stage
- دریافت 404
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| invention_case_id | Path | uuid | بله | شناسه پرونده اختراع |
Swagger
get:
summary: گردشکار ماژولار پرونده
responses:
200:
description: عملیات موفق
401:
description: احراز هویت نامعتبر یا ناقص
نمونه ورودی
curl -X GET "http://localhost:8000/api/v1/invention-cases/{invention_case_id}/workflow/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json"
نمونه خروجی
{
"success": true,
"data": {
"workflow": { "key": "patent_drafting", "name": "Patent Drafting" },
"modules": [
{ "key": "information_collection", "status": "ready", "capabilities": {} },
{ "key": "context_completion", "status": "not_started", "capabilities": {} }
]
}
}
Status Codes
- 200: عملیات موفق
- 401: احراز هویت نامعتبر یا ناقص
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای GET برگردانده میشود.
روال صحتسنجی
- بررسی 200 و workflow.key
- بررسی ترتیب modules مطابق تعریف workflow
- بررسی 404 برای کاربر بدون دسترسی
- بررسی POST transition-stage → 404
توضیحات
- ADR-0011: انتقال stage دستی حذف شده؛ پیشرفت از capabilityها و readiness مشتق میشود
- برای timeline از workflow-events استفاده کنید
- برای projection تفصیلی intake/context از workflow-state استفاده کنید
- برای ناوبری سلسلهمراتبی UI از workspace-navigation و step substeps استفاده کنید (ADR-0012)