# GET /v2/academy/categories/view

# Academy: View Categories

این اندپوینت برای دریافت لیست دسته‌بندی‌های فعال آکادمی استفاده می‌شود. تنها رکوردهایی که `status = 1` دارند واکشی می‌شوند و داده‌ها در ساختار استاندارد شامل فیلدهای id، slug، flag، title، description و status بازگردانده می‌شوند.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Facademy%2Fcat"><div class="endpoint-info"><div>**URL:** `/v2/academy/categories/view`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** AcademyController@viewCategories</div><div>**Middleware:** authWithJwt</div><div>**Auth:** JWT Required</div></div></div>## Request

این اندپوینت هیچ پارامتر اجباری یا اختیاری دریافت نمی‌کند.

<div class="api-docs" id="bkmrk-"></div>## Controller Logic

```
public function viewCategories(Request $request)
{
    $resultCategories = DB::table('academy_categories')->where("status", 1)->get();
    $categories = [];

    foreach ($resultCategories as $category) {
        $categories[] = [
            "id" => $category->id,
            "slug" => $category->slug,
            "flag" => $category->flag,
            "title" => [
                "fa" => $category->title_fa,
                "en" => $category->title_en
            ],
            "description" => $category->description,
            "status" => $category->status
        ];
    }

    return [
        "status" => true,
        "time" => time(),
        "data" => $categories
    ];
}
  
```

<div class="api-docs" id="bkmrk--1"></div>## Response Structure

<div class="api-docs" id="bkmrk-field-type-descripti"><div class="table-wrapper"><table><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>status</td><td>boolean</td><td>همیشه true در صورت اجرای موفق</td></tr><tr><td>time</td><td>integer (timestamp)</td><td>زمان پاسخ</td></tr><tr><td>data</td><td>array</td><td>لیست دسته‌بندی‌ها</td></tr></tbody></table>

</div></div>## Category Object

<div class="api-docs" id="bkmrk-field-type-descripti-1"><div class="table-wrapper"><table><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>integer</td><td>شناسه دسته‌بندی</td></tr><tr><td>slug</td><td>string</td><td>اسلاگ یکتا</td></tr><tr><td>flag</td><td>string</td><td>فلگ/برچسب دسته‌بندی</td></tr><tr><td>title.fa</td><td>string</td><td>عنوان فارسی</td></tr><tr><td>title.en</td><td>string</td><td>عنوان انگلیسی</td></tr><tr><td>description</td><td>string</td><td>توضیحات دسته‌بندی</td></tr><tr><td>status</td><td>integer</td><td>وضعیت دسته‌بندی (فقط 1 بازگردانده می‌شود)</td></tr></tbody></table>

</div></div>## Example Response

```
Status: 200 OK

{
  "status": true,
  "time": 1730000000,
  "data": [
    {
      "id": 4,
      "slug": "frontend",
      "flag": "fe",
      "title": {
        "fa": "فرانت‌اند",
        "en": "Frontend"
      },
      "description": "دسته‌بندی آموزش‌های تخصصی فرانت‌اند",
      "status": 1
    },
    ...
  ]
}
  
```

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

<div class="api-docs" id="bkmrk-validate-jwt-%E2%86%93-fetch"><div class="flowchart"><div class="flow-item">Validate JWT</div><div class="flow-arrow">↓</div><div class="flow-item">Fetch categories where status = 1</div><div class="flow-arrow">↓</div><div class="flow-item">Transform DB rows → array</div><div class="flow-arrow">↓</div><div class="flow-item">Return status=true + data + time()</div></div></div>