info:
  name: Get Dashboard Sections
  type: http
  seq: 1
http:
  method: GET
  url: '{{base_url}}/api/dashboard/sections?library_id={{library_id}}'
  auth: inherit
  body:
    type: none
runtime:
  scripts:
  - type: tests
    code: "test(\"status must be 200 with auth\", function() {\n    expect(res.status).to.eql(200);\n\
      });\n\ntest(\"response contains sections array\", function() {\n    expect(res.body.sections).to.exist;\n\
         expect(res.body.sections).to.be.an('array');\n  });"

docs: |-
  Get all dashboard sections for a specific library.

  **Endpoint**: GET /api/dashboard/sections
  **Auth**: Required (Bearer token via auth: inherit)

  ## Query Parameters

  | Parameter | Type | Required | Description |
  |-----------|------|----------|-------------|
  | library_id | string | Yes | Library UUID |
  | limit | int | No | Items per section (default: 20, max: 100) |

  ## Response

  Returns array of sections including:
  - System collections (continue-reading, recently-added, recently-read, not-started)
  - User collections marked with show_on_dashboard: true

  ## Section Structure

  Each section has:
  - `id`: Collection name (string)
  - `is_system`: Boolean indicating if this is a system collection
  - `title`: Display title
  - `description`: Collection description
  - `icon`: Emoji icon
  - `items`: Array of BookInfo objects
  - `view_all_url`: URL to view all items (system collections only)
  - `priority`: Display order (lower numbers first)

  ## Example Response

  ```json
  {
    "sections": [
      {
        "id": "continue-reading",
        "is_system": true,
        "title": "Continue Reading",
        "description": "Books you're currently reading (0 < progress < 1)",
        "icon": "📖",
        "items": [
          {
            "media_item_id": "uuid",
            "title": "Book Title",
            "author": "Author Name",
            "cover_image_path": "/path/to/cover.jpg"
          }
        ],
        "view_all_url": "/section/continue-reading",
        "priority": 1
      }
    ]
  }
  ```
