# Resource Documents API Contract

All endpoints return JSON and require `qrID`.

## Shared Query Parameters

- `qrID` (required, integer): employee id
- `q` (optional, string): search term
- `sort` (optional): `name`, `updated`, and for documents also `type`
- `dir` (optional): `ASC` or `DESC`
- `limit` (optional, integer): default `200`, max `500`
- `offset` (optional, integer): default `0`

## Endpoints

### `resource/get_resource_categories.php`

Returns top-level category folders.

```json
{
  "success": true,
  "meta": { "level": "category", "q": "", "sort": "name", "dir": "ASC" },
  "folders": [{ "id": 1, "name": "Policies", "folderType": "category", "subcategoryCount": 4 }],
  "files": []
}
```

### `resource/get_resource_subcategories.php`

Required:

- `categoryId`

Returns subcategory folders under a category.

```json
{
  "success": true,
  "meta": { "level": "subcategory", "categoryID": 1, "categoryName": "Policies" },
  "folders": [{ "id": 3, "name": "HR", "folderType": "subcategory", "categoryID": 1, "documentCount": 12 }],
  "files": []
}
```

### `resource/get_resource_documents.php`

Required:

- `subcategoryId`

Returns files in a subcategory.

```json
{
  "success": true,
  "meta": {
    "level": "document",
    "categoryID": 1,
    "categoryName": "Policies",
    "subcategoryID": 3,
    "subcategoryName": "HR"
  },
  "folders": [],
  "files": [
    {
      "id": "DOC-0001",
      "name": "Handbook",
      "fileName": "handbook.pdf",
      "extension": "pdf",
      "mime": "application/pdf",
      "url": "../new_portal/resources/handbook.pdf",
      "updatedAt": "2026-04-22 11:00:00",
      "documentDate": "2026-04-01",
      "sortOrder": 1,
      "categoryID": 1,
      "subcategoryID": 3
    }
  ]
}
```

