ATP - ایجاد پرونده اختراع (POST /api/v1/invention-cases/)
Endpoint
POST /api/v1/invention-cases/
هدف آزمون
ایجاد invention case جدید در workspace مشخص.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ورود و دریافت access token
- ارسال POST با workspace_id و title
- دریافت 201 و شناسه پرونده
- بررسی current_stage اولیه برابر information_collection
- ذخیره invention_case_id برای مراحل بعد
معرفی ویژگی
این endpoint عملیات «ایجاد پرونده اختراع» را در API Patent Genie انجام میدهد.
- ورودی معتبر: اعتبارسنجی در مرز API
- پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
- کنترل دسترسی: مطابق policy ماژول مربوطه
سناریوی آزمون
سناریو 1: ایجاد پرونده در workspace فعال
- ایجاد workspace یا انتخاب workspace موجود
- ارسال POST با title="Battery thermal management"
- دریافت 201
- بررسی case_code یکتا و current_stage=information_collection
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: خطا — بدون احراز هویت
- ارسال درخواست بدون هدر Authorization
- دریافت کد 401
- بررسی عدم برگرداندن داده محافظتشده
سناریو 4: خطا — توکن منقضی
- استفاده از access token منقضیشده
- دریافت کد 401
- تازهسازی توکن با endpoint refresh
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| workspace_id | Body | uuid | بله | فضای کاری مالک پرونده |
| title | Body | string | بله | عنوان پرونده (حداکثر ۲۵۵ کاراکتر) |
| owner_id | Body | uuid | خیر | مالک؛ پیشفرض کاربر جاری |
| status | Body | string | خیر | active |
| next_action | Body | string | خیر | اقدام پیشنهادی UI |
| main_blocker | Body | string | خیر | مانع اصلی فعلی |
Swagger
post:
summary: ایجاد پرونده اختراع
responses:
201:
description: منبع ایجاد شد
400:
description: داده ورودی نامعتبر
401:
description: احراز هویت نامعتبر
نمونه ورودی
curl -X POST "http://localhost:8000/api/v1/invention-cases/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json" \
-d '{"workspace_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","title":"Battery thermal management"}'
نمونه خروجی
{
"success": true,
"data": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"case_code": "IC-2026-042",
"title": "Battery thermal management",
"workspace_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"current_stage": "information_collection",
"status": "active"
}
}
Status Codes
- 201: منبع ایجاد شد
- 400: داده ورودی نامعتبر
- 401: احراز هویت نامعتبر
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده میشود.
روال صحتسنجی
- بررسی 201
- بررسی case_code و id در پاسخ
- بررسی current_stage=information_collection
- بررسی عضویت کاربر در workspace_id
توضیحات
- مسیر باید با پیادهسازی فعلی urls.py همخوان باشد