#P1771
PUT /v2/cartable/letters/step/{id}
Workflow Progression Logic
این متد یک مرحله خاص (`cartable_letter_steps`) از یک نامه را بروزرسانی میکند.
جادوی گردش کار: اگر وضعیت ارسالی برابر با 3 (انجام شده) باشد، سیستم به صورت خودکار پیکربندی "موضوع نامه" (`subject->steps`) را بررسی کرده و مرحله بعدی را در دیتابیس ایجاد میکند.
Update Letter Step
تغییر وضعیت یک مرحله، ثبت توضیحات و (در صورت اتمام) ارجاع خودکار به مرحله بعد.
URL:
/v2/cartable/letters/step/{id}Method: PUT
Controller: LetterController@updateLetterStep
URL Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | (الزامی) شناسه رکورد مرحله در جدول cartable_letter_steps. |
Body Parameters
| Parameter | Type | Description |
|---|---|---|
| status | Integer | (الزامی) وضعیت جدید. 3 = انجام شده (Done) -> محرک مرحله بعدی.سایر اعداد = صرفاً بروزرسانی وضعیت. |
| description | String | (اختیاری) توضیحات یا هامش روی این مرحله. |
Logic Details (Backend)
- ثبت زمان اتمام: اگر
status == 3باشد، فیلدdone_atبا زمان فعلی پر میشود. - منطق ایجاد مرحله بعد:
- سیستم `letter_id` را پیدا کرده و از روی آن `subject_id` را مییابد.
- آرایه JSON مراحل (`steps`) را از جدول `cartable_subjects` میخواند.
- موقعیت فعلی را در آرایه پیدا کرده و اگر ایندکس بعدی (`index + 1`) وجود داشته باشد، یک رکورد جدید با وضعیت پیشفرض برای مرحله بعد ایجاد میکند.
Success Response
{
"payload": 1, // نشان دهنده موفقیت آمیز بودن عملیات (تعداد ردیف تغییر کرده)
"meta": {
"timestamp": 1733765000
}
}
Visual Logic Flow
Update Step Status
↓
Check: Is Status == 3?
↓ (Yes)
Fetch Workflow Config
(Find current step index in Subject's JSON)
(Find current step index in Subject's JSON)
↓
Next Step Exists?
Insert new record into `cartable_letter_steps`
Insert new record into `cartable_letter_steps`