# RESOURCE /v2/scrumboard/sprints

<div class="api-docs" id="bkmrk-">  <div class="endpoint-section">  
</div></div>## Sprint Hydration Logic

اسپرینت‌ها ظروف نگهداری کارت‌ها در بازه‌های زمانی مشخص هستند. منطق Hydration در اینجا بسیار سنگین است زیرا با دریافت اسپرینت، سیستم به صورت خودکار تمام کارت‌های داخل آن را واکشی کرده و فرآیند "Card Deep Hydration" را برای تک تک آن‌ها اجرا می‌کند.

<div class="api-docs" id="bkmrk-fetch-sprint-data-%E2%86%93-"><div class="endpoint-section"><div class="flowchart"><div class="flow-item">Fetch Sprint Data</div><div class="flow-arrow">↓</div><div class="flow-item-process" style="background-color: #fff3e0;">**Step 1: Reports**  
Fetch `scrumboard_sprint_reports`  
+ Hydrate Operator for each report</div><div class="flow-arrow">↓</div><div class="flow-item-process" style="background-color: #e3f2fd;">**Step 2: Cards Hydration (Heavy)**  
Decode `cards` JSON (Array of IDs)  
Loop through Cards &amp; Apply **Card Deep Hydration**:  
(Members, Labels, Comments, Checklists, Attachments)</div><div class="flow-arrow">↓</div><div class="flow-item-success">Return Sprint with Full Nested Data</div></div></div>  
---

  </div># Get Sprints List

دریافت لیست اسپرینت‌های یک بورد. هر آیتم در لیست شامل آرایه‌ای کامل از کارت‌های داخل آن اسپرینت است.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fscrumboard%2F"><div class="endpoint-info"><div>**URL:** `/v2/scrumboard/sprints`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** SprintController@index</div></div></div>### Parameters

<div class="api-docs" id="bkmrk-parameter-type-locat"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Location</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">board\_id</td><td>Integer</td><td>Query</td><td>(الزامی) شناسه بورد مربوطه.</td></tr><tr><td dir="ltr">status</td><td>Integer</td><td>Query</td><td>(اختیاری) فیلتر بر اساس وضعیت اسپرینت.</td></tr></tbody></table>

</div>### Response Structure

```json
{
    "items": [
        {
            "id": 10,
            "board_id": 1,
            "title": "Sprint #4 - Login Refactor",
            "goal": "Improve security",
            "duration": "2 weeks",
            "status": 1,
            "created_at": "...",
            // گزارش‌های اسپرینت
            "reports": [
                { "id": 1, "note": "Daily meeting...", "operator": { ... } }
            ],
            // کارت‌های داخل اسپرینت (کاملاً Hydrate شده)
            "cards": [
                {
                    "id": 101,
                    "title": "Login API",
                    "members": [...],
                    "labels": [...],
                    "comments": [...],
                    "checklists": [...],
                    "attachments": [...]
                }
            ]
        }
    ],
    "meta": { "timestamp": 1733754000 }
}
```

<div class="api-docs" id="bkmrk--1">---

  </div># Create Sprint

ایجاد یک اسپرینت جدید. می‌توان در لحظه ایجاد، لیست کارت‌های مرتبط را نیز تعیین کرد.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fscrumboard%2F-1"><div class="endpoint-info"><div>**URL:** `/v2/scrumboard/sprints`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** SprintController@store</div></div></div>### Body Parameters

<div class="api-docs" id="bkmrk-parameter-type-descr"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">board\_id</td><td>Integer</td><td>(الزامی) شناسه بورد والد.</td></tr><tr><td dir="ltr">title</td><td>String</td><td>(الزامی) عنوان اسپرینت.</td></tr><tr><td dir="ltr">duration</td><td>String</td><td>(الزامی) مدت زمان (مثلاً "2 weeks").</td></tr><tr><td dir="ltr">goal</td><td>String</td><td>(اختیاری) هدف اسپرینت.</td></tr><tr><td dir="ltr">description</td><td>String</td><td>(اختیاری) توضیحات تکمیلی.</td></tr><tr><td dir="ltr">color</td><td>String</td><td>(اختیاری) کد رنگ برای نمایش در UI.</td></tr><tr><td dir="ltr">cards</td><td>Array\[Int\]</td><td>(اختیاری) آرایه‌ای از شناسه کارت‌ها جهت اتصال به این اسپرینت. مثال: `[101, 102]`</td></tr></tbody></table>

</div>### Success Response

```json
{
    "payload": {
        "id": 11,
        "title": "New Sprint",
        "cards": [], // یا شامل آبجکت‌های کارت اگر در ورودی ارسال شده باشد
        "reports": [],
        ...
    },
    "meta": { "timestamp": 1733754000 }
}
```

<div class="api-docs" id="bkmrk--2">---

  </div># Show Sprint Details

مشاهده جزئیات یک اسپرینت خاص به همراه تمامی وابستگی‌ها (کارت‌ها و گزارش‌ها).

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fscrumboard%2F-2"><div class="endpoint-info"><div>**URL:** `/v2/scrumboard/sprints/{id}`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** SprintController@show</div></div>---

  </div># Update Sprint

به‌روزرسانی اطلاعات اسپرینت. مهم: اگر پارامتر `cards` ارسال شود، لیست کارت‌های اسپرینت با لیست جدید **جایگزین** می‌شود (Sync).

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fscrumboard%2F-3"><div class="endpoint-info"><div>**URL:** `/v2/scrumboard/sprints/{id}`</div><div>**Method:** <span class="method-put">PUT</span> / <span class="method-patch">PATCH</span></div><div>**Controller:** SprintController@update</div></div></div>### Body Parameters

<div class="api-docs" id="bkmrk-parameter-type-descr-1"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">title</td><td>String</td><td>عنوان اسپرینت.</td></tr><tr><td dir="ltr">status</td><td>Integer</td><td>وضعیت (مثلاً 1: فعال، 0: آرشیو).</td></tr><tr><td dir="ltr">cards</td><td>Array\[Int\]</td><td>لیست جدید شناسه کارت‌ها. مثال: `[101, 105, 109]`</td></tr><tr><td dir="ltr">...</td><td>...</td><td>سایر فیلدهای مشابه متد Create (goal, color, duration, etc).</td></tr></tbody></table>

</div>### Success Response

```json
{
    "payload": {
        "id": 11,
        "title": "Updated Title",
        "cards": [ ... ], // لیست جدید کارت‌ها با جزئیات کامل
        ...
    },
    "meta": { "timestamp": 1733754000 }
}
```

<div class="api-docs" id="bkmrk--3">---

  </div># Delete Sprint

حذف اسپرینت از دیتابیس. این عملیات کارت‌ها را حذف نمی‌کند، بلکه فقط ارتباط اسپرینت را از بین می‌برد (مگر اینکه در دیتابیس تنظیمات دیگری اعمال شده باشد).

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fscrumboard%2F-4"><div class="endpoint-info"><div>**URL:** `/v2/scrumboard/sprints/{id}`</div><div>**Method:** <span class="method-delete">DELETE</span></div><div>**Controller:** SprintController@destroy</div></div></div>### Response

```json
{
    "payload": 1, // تعداد رکوردهای حذف شده
    "meta": { "timestamp": 1733754000 }
}
```