بازگشت به فهرست ATP →
پرونده‌های اختراع

گردش‌کار ماژولار پرونده

GET /api/v1/invention-cases/{invention_case_id}/workflow/ مشاهده در Swagger

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 معتبر

فرآیند آزمون

  1. ایجاد یا انتخاب invention case
  2. GET /workflow/ با access token
  3. بررسی modules و status اولین ماژول
  4. 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: مسیر موفق

  1. ارسال GET /api/v1/invention-cases/{invention_case_id}/workflow/
  2. دریافت پاسخ موفق
  3. بررسی ساختار پاسخ

سناریو 2: خطا - درخواست نامعتبر

  1. ارسال درخواست با داده یا شناسه نامعتبر
  2. دریافت کد خطای 4xx
  3. بررسی پیام خطای استاندارد API

سناریو 3: پرونده تازه

  1. ایجاد case
  2. GET workflow
  3. بررسی modules[0].key="information_collection"
  4. بررسی status در ready یا not_started

سناریو 4: endpoint حذف‌شده

  1. POST /transition-stage/ با target_stage
  2. دریافت 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 برگردانده می‌شود.

روال صحت‌سنجی

  1. بررسی 200 و workflow.key
  2. بررسی ترتیب modules مطابق تعریف workflow
  3. بررسی 404 برای کاربر بدون دسترسی
  4. بررسی POST transition-stage → 404

توضیحات

  • ADR-0011: انتقال stage دستی حذف شده؛ پیشرفت از capabilityها و readiness مشتق می‌شود
  • برای timeline از workflow-events استفاده کنید
  • برای projection تفصیلی intake/context از workflow-state استفاده کنید
  • برای ناوبری سلسله‌مراتبی UI از workspace-navigation و step substeps استفاده کنید (ADR-0012)