Skip to main content
#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 با زمان فعلی پر می‌شود.
  • منطق ایجاد مرحله بعد:
    1. سیستم `letter_id` را پیدا کرده و از روی آن `subject_id` را می‌یابد.
    2. آرایه JSON مراحل (`steps`) را از جدول `cartable_subjects` می‌خواند.
    3. موقعیت فعلی را در آرایه پیدا کرده و اگر ایندکس بعدی (`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)
Next Step Exists?
Insert new record into `cartable_letter_steps`