{
    "openapi": "3.1.0",
    "info": {
        "title": "Salim Wazaran Kenya Company Limited (SAWAKE)",
        "version": "1.0.0",
        "description": "SAWAKE API is the official backend system powering Salim Wazaran Kenya Company Limited (SAWAKE) digital ecosystem. It supports the Indomie Kenya platform and internal company systems including the corporate website, careers portal, surveillance and monitoring systems, and mobile applications. \n\n        It provides secure authentication, employee and user management, recruitment and careers workflows, product and distribution data handling, reporting systems, and internal operational tools.\n\n        Designed for developers working under SAWAKE, this API enables scalable integration across web and mobile platforms including https:\/\/indomiekenya.co.ke.\n\n        It ensures secure, structured, and enterprise-level access to company data while supporting operational efficiency, monitoring, and digital transformation across all SAWAKE systems."
    },
    "servers": [
        {
            "url": "https:\/\/www.careers.kraitech.co.ke\/api"
        }
    ],
    "tags": [
        {
            "name": "Authentication",
            "description": "Endpoints for user authentication and session management.\n\nHandles login, registration, profile retrieval and logout.\nOn successful login or registration a **Sanctum bearer token**\nis returned, which must be sent in the `Authorization` header\nas `Bearer {token}` for all protected endpoints."
        },
        {
            "name": "Password Reset",
            "description": "OTP-based password recovery flow.\n\nA user requests a one-time password (OTP) which is emailed to\nthem and valid for **10 minutes**. The OTP is then verified and\nused to set a new password. These endpoints are public and do\nnot require authentication."
        },
        {
            "name": "Users",
            "description": "User directory and lookup.\n\nEndpoints for listing users (excluding those with the\n`enumerator` role) and retrieving a single user by their unique\nslug. Each user is returned with their **region** and **roles**\nloaded. Requires authentication."
        },
        {
            "name": "Enumerator Authentication",
            "description": "Work-number login for field enumerators.\n\nA dedicated, passwordless login for enumerators: they authenticate with\nonly their **work number**. The account must have the `enumerator` role\nand be **active** (`is_active = true`). On success a **Sanctum bearer\ntoken** is returned for use in the `Authorization` header. This endpoint\nis public."
        },
        {
            "name": "Roles",
            "description": "Role management (RBAC).\n\nFull CRUD for roles under the `sanctum` guard, plus syncing permissions\nonto a role. Every endpoint is **permission-gated** \u2014 the caller must hold\nthe relevant `kraiteech-permissions.roles.*` permission or a **403** is\nreturned. Requires authentication."
        },
        {
            "name": "Permissions",
            "description": "Permission catalogue.\n\nRead-only listing of all permissions registered under the `sanctum` guard,\nused when building or assigning roles. Requires the permissions \"view\"\npermission; otherwise a **403** is returned."
        },
        {
            "name": "Experience Levels",
            "description": "Experience level management.\n\nFull CRUD for experience levels, each identified by a name and an\nauto-generated **slug**. Every endpoint is **permission-gated** \u2014 the caller\nmust hold the relevant `kraiteech-permissions.experience_levels.*`\npermission or a **403** is returned. Requires authentication."
        },
        {
            "name": "Job Types",
            "description": "Job type management.\n\nFull CRUD for job types, each identified by a name and an auto-generated\n**slug**. Every endpoint is **permission-gated** \u2014 the caller must hold the\nrelevant `kraiteech-permissions.job_types.*` permission or a **403** is\nreturned. Requires authentication."
        },
        {
            "name": "Locations",
            "description": "Location management.\n\nFull CRUD for locations, each with a name, auto-generated **slug**, plus\ntype, address, city and country. Every endpoint is **permission-gated** \u2014\nthe caller must hold the relevant `kraiteech-permissions.locations.*`\npermission or a **403** is returned. Requires authentication."
        },
        {
            "name": "Branches",
            "description": "Branch management.\n\nFull CRUD for branches, each with a name, auto-generated **slug** and\noptional location. Includes lookup by **slug** and listing a branch's\n**departments**. Most endpoints are **permission-gated** via\n`kraiteech-permissions.branches.*`, returning **403** when the caller lacks\naccess. Requires authentication."
        },
        {
            "name": "Departments",
            "description": "Department management.\n\nFull CRUD for departments, each with a name, auto-generated **slug** and\noptional description. New departments are attached to the creating user's\n**branch**, and lookup by **slug** is supported. Every endpoint is\n**permission-gated** via `kraiteech-permissions.departments.*`, returning\n**403** when the caller lacks access. Requires authentication."
        },
        {
            "name": "Job Meta",
            "description": "Job reference data.\n\nA single convenience endpoint that bundles all the lookup data used when\ncreating job postings or applications \u2014 **locations, departments, job\ntypes, experience levels, required documents and application stages** \u2014 so\nthe client can populate form dropdowns in one call. Requires authentication."
        },
        {
            "name": "Required Documents",
            "description": "Required document management.\n\nFull CRUD for the documents applicants must submit, each with a name and\nauto-generated **slug**. Every endpoint is **permission-gated** via\n`kraiteech-permissions.required_documents.*`, returning **403** when the\ncaller lacks access. Requires authentication."
        },
        {
            "name": "Jobs",
            "description": "Job posting management (admin).\n\nFull CRUD for job postings, each linked to a department, location, job type,\nexperience level and a set of required documents. Every endpoint is\n**permission-gated** via `kraiteech-permissions.jobs.*`, returning **403**\nwhen the caller lacks access. Requires authentication."
        },
        {
            "name": "Public Jobs",
            "description": "Public job browsing.\n\nUnauthenticated endpoints for the public careers site: a **paginated** list\nof active postings, single-job lookup by **slug**, and a **filterable\nsearch** (by department, location, job type, experience level and free\ntext). Only active jobs are returned. No authentication required."
        },
        {
            "name": "Application Stages",
            "description": "Application stage management.\n\nFull CRUD for the stages an application moves through, each with a name and\nauto-generated **slug**. Every endpoint is **permission-gated** via\n`kraiteech-permissions.application_stages.*`, returning **403** when the\ncaller lacks access. Requires authentication."
        },
        {
            "name": "Applications",
            "description": "Job application management.\n\nHandles candidate submissions and their lifecycle. **Submitting** an\napplication is public and guards against duplicates (**409** if pending,\n**403** if previously rejected). Listing, updating stage\/status, adding\nnotes and deleting are administrative actions. Status follows a fixed set:\nApplied, Screening, Interview, Rejected, Hired."
        },
        {
            "name": "Enumerator Management",
            "description": "Administrative management of enumerators.\n\nCreate, update, list and delete enumerator accounts, including listing\nthose not yet assigned to a region. New enumerators get a system-generated\npassword; deletions are **soft** and free up the email\/work number for\nreuse. Duplicate email or work number is rejected with **422**. Requires\nauthentication."
        },
        {
            "name": "Regions",
            "description": "Region management and assignment.\n\nCreate and list regions, assign a region to an enumerator, and delete\nregions. A region can only be deleted when it has **no associated users or\nsurvey responses** \u2014 otherwise a **422** explains what must be reassigned\nfirst. Only enumerators may be assigned to regions. Requires authentication."
        },
        {
            "name": "Survey Management",
            "description": "Survey, question and response administration.\n\nCreate, update and delete surveys; manage their questions (types: text,\nselect, multiple_select, number, textarea, with optional nesting under a\nparent question); and list responses with their answers, filterable by\nregion. Deleting a survey **cascades** to its questions, responses and\nanswers. Requires authentication."
        },
        {
            "name": "Survey Documents",
            "description": "Survey document storage.\n\nUpload, list and delete documents associated with surveys. Uploads accept a\nfile up to **10 MB**, are stored on the public disk, and are returned with a\npublic URL. Deleting a record also removes the underlying file. Requires\nauthentication."
        },
        {
            "name": "Survey Submissions",
            "description": "Enumerator survey flow and field reporting.\n\nLets enumerators browse surveys, submit answers for an outlet (with\nconditional child questions), and view their own **outlets** and an\naggregated **analytics report** \u2014 totals, average spend, brand availability\nand carton counts, price analysis, and breakdowns by area, channel and top\nproducts. Requires authentication."
        },
        {
            "name": "Survey Responses",
            "description": "Survey response and answer management.\n\nRead, update and delete submitted responses and their individual answers.\nAnswers are returned in normalized forms (raw string, array, first-value,\nand parsed prices for price fields), and updates\/deletes cascade\nappropriately. Requires authentication."
        },
        {
            "name": "Dashboard",
            "description": "Analytics and reporting dashboard.\n\nAggregated insight across surveys, enumerators and regions: a full\n**overview** dashboard (date-range filterable), a compact **quick stats**\nsnapshot, and a per-**enumerator** performance profile. All figures are\nread-only aggregates; date ranges default to the last 30 days. Requires\nauthentication."
        },
        {
            "name": "Newsletter",
            "description": "Newsletter subscription.\n\nA single public endpoint to subscribe an email to the newsletter. The\noperation is **idempotent**: re-subscribing an active address is a no-op,\nan unsubscribed address is reactivated, and a brand-new address is created\n(**201**). No authentication required."
        }
    ],
    "security": [
        {
            "http": []
        }
    ],
    "paths": {
        "\/auth\/login": {
            "post": {
                "operationId": "auth.login",
                "description": "Authenticate a user with their email and password. On success, returns a\nSanctum API token together with the user's profile, region and roles.",
                "summary": "User login",
                "tags": [
                    "Authentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/LoginRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Login successful"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "accessToken": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "accessToken",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid credentials"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/auth\/users": {
            "post": {
                "operationId": "auth.register_0",
                "description": "Creates a new user account, assigns the given role, and returns a fresh\nAPI token along with the created user.",
                "summary": "Register a new user",
                "tags": [
                    "Authentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RegisterRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Registered successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "accessToken": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "$ref": "#\/components\/schemas\/User"
                                                }
                                            },
                                            "required": [
                                                "accessToken",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/auth\/logout": {
            "post": {
                "operationId": "auth.logout",
                "description": "Revokes the current access token for the authenticated user.",
                "summary": "Logout",
                "tags": [
                    "Authentication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Logged out successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/auth\/profile": {
            "get": {
                "operationId": "auth.profile_0",
                "description": "Returns the currently authenticated user with region and roles loaded.",
                "summary": "Get authenticated profile",
                "tags": [
                    "Authentication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Profile retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "user": {
                                                    "$ref": "#\/components\/schemas\/User"
                                                }
                                            },
                                            "required": [
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/user\/register": {
            "post": {
                "operationId": "auth.register_0",
                "description": "Creates a new user account, assigns the given role, and returns a fresh\nAPI token along with the created user.",
                "summary": "Register a new user",
                "tags": [
                    "Authentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RegisterRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Registered successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "accessToken": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "$ref": "#\/components\/schemas\/User"
                                                }
                                            },
                                            "required": [
                                                "accessToken",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/user\/profile": {
            "get": {
                "operationId": "auth.profile_0",
                "description": "Returns the currently authenticated user with region and roles loaded.",
                "summary": "Get authenticated profile",
                "tags": [
                    "Authentication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Profile retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "user": {
                                                    "$ref": "#\/components\/schemas\/User"
                                                }
                                            },
                                            "required": [
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/auth\/forgot-password": {
            "post": {
                "operationId": "auth.forgotPassword",
                "description": "Generates a 6-digit one-time password, stores it with a 10-minute\nexpiry, and emails it to the user.",
                "summary": "Request password reset OTP",
                "tags": [
                    "Password Reset"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ForgotPasswordRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "OTP sent to email"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/auth\/verify-otp": {
            "post": {
                "operationId": "auth.verifyOtp",
                "description": "Validates the OTP submitted by the user and checks that it has not expired.",
                "summary": "Verify OTP",
                "tags": [
                    "Password Reset"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/VerifyOtpRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "OTP verified"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid or expired OTP"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/auth\/reset-password": {
            "post": {
                "operationId": "auth.resetPassword",
                "description": "Resets the user's password after verifying the OTP, then clears the\nstored OTP and its expiry.",
                "summary": "Reset password",
                "tags": [
                    "Password Reset"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ResetPasswordRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Password reset successful"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid or expired OTP"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/user\/all-employees": {
            "get": {
                "operationId": "auth.getAllUsers",
                "description": "Retrieves all users with their region and roles, excluding any user\nwhose role is \"enumerator\".",
                "summary": "List users",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Users retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "users": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/User"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "users"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/user\/{id}\/activate": {
            "post": {
                "operationId": "auth.activate",
                "description": "Sets the user's account back to active. Returns **404** if the user is not found.",
                "summary": "Reactivate a user",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User reactivated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/user\/{id}\/deactivate": {
            "post": {
                "operationId": "auth.deactivate",
                "description": "Sets the user's account to inactive. Returns **404** if the user is not found.",
                "summary": "Deactivate a user",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User deactivated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/user\/{slug}": {
            "get": {
                "operationId": "auth.getUserBySlug",
                "description": "Retrieves a single user identified by their unique slug, with region\nand roles loaded.",
                "summary": "Get user by slug",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "user": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#\/components\/schemas\/User"
                                                        },
                                                        {
                                                            "type": "null"
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/auth\/login\/enumerator": {
            "post": {
                "operationId": "enumeratorAuth.loginWithWorkNumber",
                "description": "Authenticate an enumerator using only their work number. The account\nmust have the `enumerator` role and be active. On success a Sanctum\nbearer token is returned along with the enumerator's profile and region.",
                "summary": "Enumerator login",
                "tags": [
                    "Enumerator Authentication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "work_number": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "work_number"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Login successful"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "accessToken": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "accessToken",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid work number"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/roles\/list": {
            "get": {
                "operationId": "role.registrationRoles",
                "description": "Retrieves the roles available for the `sanctum` guard, intended for use\nin registration\/role-selection flows. Requires the roles \"view\" permission.",
                "summary": "List registration roles",
                "tags": [
                    "Roles"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Roles retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "roles": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/RoleResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "roles"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/roles": {
            "get": {
                "operationId": "roles.index",
                "description": "Retrieves all roles with their permissions, ordered by most recently\ncreated. Requires the roles \"view\" permission.",
                "summary": "List roles",
                "tags": [
                    "Roles"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Roles retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "roles": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/RoleResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "roles"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "roles.store",
                "description": "Creates a new role under the `sanctum` guard (or returns the existing\none with the same name) and optionally syncs the given permissions.\nRequires the roles \"create\" permission.",
                "summary": "Create a role",
                "tags": [
                    "Roles"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RoleRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "role": {
                                                    "$ref": "#\/components\/schemas\/RoleResource"
                                                }
                                            },
                                            "required": [
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/roles\/{id}": {
            "get": {
                "operationId": "roles.show",
                "description": "Retrieves a single role with its permissions by ID. Requires the roles\n\"view\" permission.",
                "summary": "Show a role",
                "tags": [
                    "Roles"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "role": {
                                                    "$ref": "#\/components\/schemas\/RoleResource"
                                                }
                                            },
                                            "required": [
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "roles.update",
                "description": "Updates a role's name and optionally re-syncs its permissions.\nRequires the roles \"update\" permission.",
                "summary": "Update a role",
                "tags": [
                    "Roles"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RoleRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "role": {
                                                    "$ref": "#\/components\/schemas\/RoleResource"
                                                }
                                            },
                                            "required": [
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "roles.destroy",
                "description": "Permanently deletes a role by ID. Requires the roles \"delete\" permission.",
                "summary": "Delete a role",
                "tags": [
                    "Roles"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete roles"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/roles\/{roleId}\/assign-permissions": {
            "post": {
                "operationId": "role.assignPermissions",
                "description": "Replaces a role's permissions with the given set of permission IDs.\nRequires the roles \"assign permissions\" permission.",
                "summary": "Assign permissions to a role",
                "tags": [
                    "Roles"
                ],
                "parameters": [
                    {
                        "name": "roleId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/AssignPermissionsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Permissions assigned successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Role not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to assign permissions"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/permissions": {
            "get": {
                "operationId": "role.allPermissions",
                "description": "Retrieves every permission registered under the `sanctum` guard.\nRequires the permissions \"view\" permission.",
                "summary": "List all permissions",
                "tags": [
                    "Permissions"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Permissions retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "permissions": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/PermissionResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "permissions"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view permissions"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/experience-levels\/{id}": {
            "get": {
                "operationId": "experienceLevel.show_0",
                "description": "Retrieves a single experience level resolved by route-model binding.\nRequires the experience levels \"view\" permission.",
                "summary": "Show an experience level",
                "tags": [
                    "Experience Levels"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience level retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "experienceLevel": {
                                                    "$ref": "#\/components\/schemas\/ExperienceLevelResource"
                                                }
                                            },
                                            "required": [
                                                "experienceLevel"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this experience level"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/experience-levels": {
            "get": {
                "operationId": "experience-levels.index",
                "description": "Retrieves all experience levels, ordered by most recently created.\nRequires the experience levels \"view\" permission.",
                "summary": "List experience levels",
                "tags": [
                    "Experience Levels"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience levels retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "experienceLevels": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/ExperienceLevelResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "experienceLevels"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view experience levels"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "experience-levels.store",
                "description": "Creates a new experience level (or returns the existing one with the same\nname), auto-generating a slug from the name. Requires the experience\nlevels \"create\" permission.",
                "summary": "Create an experience level",
                "tags": [
                    "Experience Levels"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ExperienceLevelRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience level created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "experienceLevel": {
                                                    "$ref": "#\/components\/schemas\/ExperienceLevelResource"
                                                }
                                            },
                                            "required": [
                                                "experienceLevel"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create experience levels"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/experience-levels\/{experienceLevel}": {
            "get": {
                "operationId": "experience-levels.show",
                "description": "Retrieves a single experience level resolved by route-model binding.\nRequires the experience levels \"view\" permission.",
                "summary": "Show an experience level",
                "tags": [
                    "Experience Levels"
                ],
                "parameters": [
                    {
                        "name": "experienceLevel",
                        "in": "path",
                        "required": true,
                        "description": "The experience level ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience level retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "experienceLevel": {
                                                    "$ref": "#\/components\/schemas\/ExperienceLevelResource"
                                                }
                                            },
                                            "required": [
                                                "experienceLevel"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this experience level"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            },
            "put": {
                "operationId": "experience-levels.update",
                "description": "Updates an experience level's name and regenerates its slug. Fields fall\nback to the existing values when omitted. Requires the experience levels\n\"update\" permission.",
                "summary": "Update an experience level",
                "tags": [
                    "Experience Levels"
                ],
                "parameters": [
                    {
                        "name": "experienceLevel",
                        "in": "path",
                        "required": true,
                        "description": "The experience level ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ExperienceLevelRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience level updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "experienceLevel": {
                                                    "$ref": "#\/components\/schemas\/ExperienceLevelResource"
                                                }
                                            },
                                            "required": [
                                                "experienceLevel"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update experience levels"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "experience-levels.destroy",
                "description": "Permanently deletes an experience level resolved by route-model binding.\nRequires the experience levels \"delete\" permission.",
                "summary": "Delete an experience level",
                "tags": [
                    "Experience Levels"
                ],
                "parameters": [
                    {
                        "name": "experienceLevel",
                        "in": "path",
                        "required": true,
                        "description": "The experience level ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Experience level deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete experience levels"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/job-types\/{id}": {
            "get": {
                "operationId": "jobType.show_0",
                "description": "Retrieves a single job type resolved by route-model binding.\nRequires the job types \"view\" permission.",
                "summary": "Show a job type",
                "tags": [
                    "Job Types"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job type retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobType": {
                                                    "$ref": "#\/components\/schemas\/JobTypeResource"
                                                }
                                            },
                                            "required": [
                                                "jobType"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this job type"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/job-types": {
            "get": {
                "operationId": "job-types.index",
                "description": "Retrieves all job types, ordered by most recently created.\nRequires the job types \"view\" permission.",
                "summary": "List job types",
                "tags": [
                    "Job Types"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job types retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobTypes": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/JobTypeResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "jobTypes"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view job types"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "job-types.store",
                "description": "Creates a new job type (or returns the existing one with the same name),\nauto-generating a slug from the name. Requires the job types \"create\"\npermission.",
                "summary": "Create a job type",
                "tags": [
                    "Job Types"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/JobTypeRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job type created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobType": {
                                                    "$ref": "#\/components\/schemas\/JobTypeResource"
                                                }
                                            },
                                            "required": [
                                                "jobType"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create job types"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/job-types\/{jobType}": {
            "get": {
                "operationId": "job-types.show",
                "description": "Retrieves a single job type resolved by route-model binding.\nRequires the job types \"view\" permission.",
                "summary": "Show a job type",
                "tags": [
                    "Job Types"
                ],
                "parameters": [
                    {
                        "name": "jobType",
                        "in": "path",
                        "required": true,
                        "description": "The job type ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job type retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobType": {
                                                    "$ref": "#\/components\/schemas\/JobTypeResource"
                                                }
                                            },
                                            "required": [
                                                "jobType"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this job type"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            },
            "put": {
                "operationId": "job-types.update",
                "description": "Updates a job type's name and regenerates its slug. Fields fall back to\nthe existing values when omitted. Requires the job types \"update\"\npermission.",
                "summary": "Update a job type",
                "tags": [
                    "Job Types"
                ],
                "parameters": [
                    {
                        "name": "jobType",
                        "in": "path",
                        "required": true,
                        "description": "The job type ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/JobTypeRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job type updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobType": {
                                                    "$ref": "#\/components\/schemas\/JobTypeResource"
                                                }
                                            },
                                            "required": [
                                                "jobType"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update job types"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "job-types.destroy",
                "description": "Permanently deletes a job type resolved by route-model binding.\nRequires the job types \"delete\" permission.",
                "summary": "Delete a job type",
                "tags": [
                    "Job Types"
                ],
                "parameters": [
                    {
                        "name": "jobType",
                        "in": "path",
                        "required": true,
                        "description": "The job type ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job type deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete job types"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/locations\/{id}": {
            "get": {
                "operationId": "location.show_0",
                "description": "Retrieves a single location resolved by route-model binding.\nRequires the locations \"view\" permission.",
                "summary": "Show a location",
                "tags": [
                    "Locations"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Location retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "location": {
                                                    "$ref": "#\/components\/schemas\/LocationResource"
                                                }
                                            },
                                            "required": [
                                                "location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this location"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/locations": {
            "get": {
                "operationId": "locations.index",
                "description": "Retrieves all locations, ordered by most recently created.\nRequires the locations \"view\" permission.",
                "summary": "List locations",
                "tags": [
                    "Locations"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Locations retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "locations": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/LocationResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "locations"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view locations"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "locations.store",
                "description": "Creates a new location (or returns the existing one with the same name),\nauto-generating a slug and storing its type, address, city and country.\nRequires the locations \"create\" permission.",
                "summary": "Create a location",
                "tags": [
                    "Locations"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/LocationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Location created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "location": {
                                                    "$ref": "#\/components\/schemas\/LocationResource"
                                                }
                                            },
                                            "required": [
                                                "location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create locations"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/locations\/{location}": {
            "get": {
                "operationId": "locations.show",
                "description": "Retrieves a single location resolved by route-model binding.\nRequires the locations \"view\" permission.",
                "summary": "Show a location",
                "tags": [
                    "Locations"
                ],
                "parameters": [
                    {
                        "name": "location",
                        "in": "path",
                        "required": true,
                        "description": "The location ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Location retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "location": {
                                                    "$ref": "#\/components\/schemas\/LocationResource"
                                                }
                                            },
                                            "required": [
                                                "location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this location"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            },
            "put": {
                "operationId": "locations.update",
                "description": "Updates a location's name (regenerating its slug), type, address, city\nand country. Fields fall back to existing values when omitted. Requires\nthe locations \"update\" permission.",
                "summary": "Update a location",
                "tags": [
                    "Locations"
                ],
                "parameters": [
                    {
                        "name": "location",
                        "in": "path",
                        "required": true,
                        "description": "The location ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/LocationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Location updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "location": {
                                                    "$ref": "#\/components\/schemas\/LocationResource"
                                                }
                                            },
                                            "required": [
                                                "location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update locations"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "locations.destroy",
                "description": "Permanently deletes a location resolved by route-model binding.\nRequires the locations \"delete\" permission.",
                "summary": "Delete a location",
                "tags": [
                    "Locations"
                ],
                "parameters": [
                    {
                        "name": "location",
                        "in": "path",
                        "required": true,
                        "description": "The location ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Location deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete locations"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/branches": {
            "get": {
                "operationId": "branches.index",
                "description": "Retrieves all branches with their departments, ordered by most recently\ncreated. Requires the branches \"view\" permission.",
                "summary": "List branches",
                "tags": [
                    "Branches"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branches retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "branches": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/BranchResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "branches"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view branches"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "branches.store",
                "description": "Creates a new branch (or returns the existing one with the same name),\nauto-generating a slug and storing its optional location. Requires the\nbranches \"create\" permission.",
                "summary": "Create a branch",
                "tags": [
                    "Branches"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/BranchRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branch created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "branch": {
                                                    "$ref": "#\/components\/schemas\/BranchResource"
                                                }
                                            },
                                            "required": [
                                                "branch"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create branches"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/branches\/{branch}": {
            "get": {
                "operationId": "branches.show",
                "description": "Retrieves a single branch with its departments, resolved by\nroute-model binding. Requires the branches \"view\" permission.",
                "summary": "Show a branch",
                "tags": [
                    "Branches"
                ],
                "parameters": [
                    {
                        "name": "branch",
                        "in": "path",
                        "required": true,
                        "description": "The branch ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branch retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "branch": {
                                                    "$ref": "#\/components\/schemas\/BranchResource"
                                                }
                                            },
                                            "required": [
                                                "branch"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this branch"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "branches.update",
                "description": "Updates a branch's name (regenerating its slug) and location. Fields fall\nback to existing values when omitted. Requires the branches \"update\"\npermission.",
                "summary": "Update a branch",
                "tags": [
                    "Branches"
                ],
                "parameters": [
                    {
                        "name": "branch",
                        "in": "path",
                        "required": true,
                        "description": "The branch ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/BranchRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branch updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "branch": {
                                                    "$ref": "#\/components\/schemas\/BranchResource"
                                                }
                                            },
                                            "required": [
                                                "branch"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update this branch"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "branches.destroy",
                "description": "Permanently deletes a branch resolved by route-model binding.\nRequires the branches \"delete\" permission.",
                "summary": "Delete a branch",
                "tags": [
                    "Branches"
                ],
                "parameters": [
                    {
                        "name": "branch",
                        "in": "path",
                        "required": true,
                        "description": "The branch ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branch deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete this branch"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/branches\/{branchId}\/departments": {
            "get": {
                "operationId": "branch.departments",
                "description": "Retrieves the departments belonging to a branch identified by its ID.",
                "summary": "List a branch's departments",
                "tags": [
                    "Branches"
                ],
                "parameters": [
                    {
                        "name": "branchId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Departments retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "departments": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "departments"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Branch not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/departments\/{slug}": {
            "get": {
                "operationId": "department.showBySlug",
                "description": "Retrieves a single department with its users, identified by its unique\nslug. Requires the departments \"view\" permission.",
                "summary": "Show a department by slug",
                "tags": [
                    "Departments"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "department": {
                                                    "$ref": "#\/components\/schemas\/DepartmentResource"
                                                }
                                            },
                                            "required": [
                                                "department"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view departments"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/departments": {
            "get": {
                "operationId": "departments.index",
                "description": "Retrieves all departments with their users.\nRequires the departments \"view\" permission.",
                "summary": "List departments",
                "tags": [
                    "Departments"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Departments retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "departments": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/DepartmentResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "departments"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view departments"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "departments.store",
                "description": "Creates a new department (or returns the existing one with the same name),\nauto-generating a slug and attaching it to the authenticated user's\nbranch. Requires the departments \"create\" permission.",
                "summary": "Create a department",
                "tags": [
                    "Departments"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/DepartmentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "department": {
                                                    "$ref": "#\/components\/schemas\/DepartmentResource"
                                                }
                                            },
                                            "required": [
                                                "department"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create departments"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/departments\/{department}": {
            "get": {
                "operationId": "departments.show",
                "description": "Retrieves a single department with its users, resolved by route-model\nbinding. Requires the departments \"view\" permission.",
                "summary": "Show a department",
                "tags": [
                    "Departments"
                ],
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "required": true,
                        "description": "The department ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "department": {
                                                    "$ref": "#\/components\/schemas\/DepartmentResource"
                                                }
                                            },
                                            "required": [
                                                "department"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this department"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "departments.update",
                "description": "Updates a department's name (regenerating its slug) and description from\nthe submitted payload. Fields fall back to existing values when omitted.\nRequires the departments \"update\" permission.",
                "summary": "Update a department",
                "tags": [
                    "Departments"
                ],
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "required": true,
                        "description": "The department ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/DepartmentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "department": {
                                                    "$ref": "#\/components\/schemas\/DepartmentResource"
                                                }
                                            },
                                            "required": [
                                                "department"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update this department"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "departments.destroy",
                "description": "Permanently deletes a department resolved by route-model binding.\nRequires the departments \"delete\" permission.",
                "summary": "Delete a department",
                "tags": [
                    "Departments"
                ],
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "required": true,
                        "description": "The department ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Department deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete this department"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/job-meta": {
            "get": {
                "operationId": "jobMeta.index",
                "description": "Returns the reference data needed to build a job posting or application\nform in a single request: all locations, departments, job types,\nexperience levels, required documents and application stages.",
                "summary": "Get job metadata",
                "tags": [
                    "Job Meta"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job meta data retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "locations": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/Location"
                                                    }
                                                },
                                                "departments": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/Department"
                                                    }
                                                },
                                                "job_types": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/JobType"
                                                    }
                                                },
                                                "experience_levels": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/ExperienceLevel"
                                                    }
                                                },
                                                "required_documents": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/RequiredDocument"
                                                    }
                                                },
                                                "application_stages": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/ApplicationStage"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "locations",
                                                "departments",
                                                "job_types",
                                                "experience_levels",
                                                "required_documents",
                                                "application_stages"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/required-documents\/{id}": {
            "get": {
                "operationId": "requiredDocument.show_0",
                "description": "Retrieves a single required document resolved by route-model binding.\nRequires the required documents \"view\" permission.",
                "summary": "Show a required document",
                "tags": [
                    "Required Documents"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required document retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "requiredDocument": {
                                                    "$ref": "#\/components\/schemas\/RequiredDocumentResource"
                                                }
                                            },
                                            "required": [
                                                "requiredDocument"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this required document"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/required-documents": {
            "get": {
                "operationId": "required-documents.index",
                "description": "Retrieves all required documents, ordered by most recently created.\nRequires the required documents \"view\" permission.",
                "summary": "List required documents",
                "tags": [
                    "Required Documents"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required documents retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "requiredDocuments": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/RequiredDocumentResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "requiredDocuments"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view required documents"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "required-documents.store",
                "description": "Creates a new required document (or returns the existing one with the\nsame name), auto-generating a slug from the name. Requires the required\ndocuments \"create\" permission.",
                "summary": "Create a required document",
                "tags": [
                    "Required Documents"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RequiredDocumentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required document created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "requiredDocument": {
                                                    "$ref": "#\/components\/schemas\/RequiredDocumentResource"
                                                }
                                            },
                                            "required": [
                                                "requiredDocument"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create required documents"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/required-documents\/{requiredDocument}": {
            "get": {
                "operationId": "required-documents.show",
                "description": "Retrieves a single required document resolved by route-model binding.\nRequires the required documents \"view\" permission.",
                "summary": "Show a required document",
                "tags": [
                    "Required Documents"
                ],
                "parameters": [
                    {
                        "name": "requiredDocument",
                        "in": "path",
                        "required": true,
                        "description": "The required document ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required document retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "requiredDocument": {
                                                    "$ref": "#\/components\/schemas\/RequiredDocumentResource"
                                                }
                                            },
                                            "required": [
                                                "requiredDocument"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this required document"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            },
            "put": {
                "operationId": "required-documents.update",
                "description": "Updates a required document's name. Falls back to the existing value when\nomitted. Requires the required documents \"update\" permission.",
                "summary": "Update a required document",
                "tags": [
                    "Required Documents"
                ],
                "parameters": [
                    {
                        "name": "requiredDocument",
                        "in": "path",
                        "required": true,
                        "description": "The required document ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RequiredDocumentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required document updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "requiredDocument": {
                                                    "$ref": "#\/components\/schemas\/RequiredDocumentResource"
                                                }
                                            },
                                            "required": [
                                                "requiredDocument"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update required documents"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "required-documents.destroy",
                "description": "Permanently deletes a required document resolved by route-model binding.\nRequires the required documents \"delete\" permission.",
                "summary": "Delete a required document",
                "tags": [
                    "Required Documents"
                ],
                "parameters": [
                    {
                        "name": "requiredDocument",
                        "in": "path",
                        "required": true,
                        "description": "The required document ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Required document deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete required documents"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/jobs": {
            "get": {
                "operationId": "jobs.index",
                "description": "Retrieves all jobs with their department, location, job type, experience\nlevel and required documents, ordered by most recently created. Requires\nthe jobs \"view\" permission.",
                "summary": "List jobs (admin)",
                "tags": [
                    "Jobs"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Jobs retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobs": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "jobs"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view jobs"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "jobs.store",
                "description": "Creates a new job posting from the validated payload and optionally syncs\nits required documents. Requires the jobs \"create\" permission.",
                "summary": "Create a job (admin)",
                "tags": [
                    "Jobs"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/JobSawakeRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "job": {
                                                    "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                }
                                            },
                                            "required": [
                                                "job"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create jobs"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/jobs\/{job}": {
            "get": {
                "operationId": "jobs.show",
                "description": "Retrieves a single job posting with all related data, resolved by\nroute-model binding. Requires the jobs \"view\" permission.",
                "summary": "Show a job (admin)",
                "tags": [
                    "Jobs"
                ],
                "parameters": [
                    {
                        "name": "job",
                        "in": "path",
                        "required": true,
                        "description": "The job ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "job": {
                                                    "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                }
                                            },
                                            "required": [
                                                "job"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view jobs"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "jobs.update",
                "description": "Updates a job posting from the validated payload and optionally re-syncs\nits required documents. Requires the jobs \"update\" permission.",
                "summary": "Update a job (admin)",
                "tags": [
                    "Jobs"
                ],
                "parameters": [
                    {
                        "name": "job",
                        "in": "path",
                        "required": true,
                        "description": "The job ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/JobSawakeRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "job": {
                                                    "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                }
                                            },
                                            "required": [
                                                "job"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update jobs"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "jobs.destroy",
                "description": "Permanently deletes a job posting resolved by route-model binding.\nRequires the jobs \"delete\" permission.",
                "summary": "Delete a job (admin)",
                "tags": [
                    "Jobs"
                ],
                "parameters": [
                    {
                        "name": "job",
                        "in": "path",
                        "required": true,
                        "description": "The job ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete jobs"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/available-jobs\/search": {
            "get": {
                "operationId": "jobSawake.publicSearch",
                "description": "Returns active job postings filtered by department, location, job type,\nexperience level and a free-text search over title and description.\nResults can be sorted; defaults to most recently posted. Publicly\naccessible \u2014 no authentication required.",
                "summary": "Search public jobs",
                "tags": [
                    "Public Jobs"
                ],
                "parameters": [
                    {
                        "name": "departments[]",
                        "in": "query",
                        "description": "Filter by department IDs.",
                        "schema": {
                            "type": "array",
                            "items": {}
                        }
                    },
                    {
                        "name": "locations[]",
                        "in": "query",
                        "description": "Filter by location IDs.",
                        "schema": {
                            "type": "array",
                            "items": {}
                        }
                    },
                    {
                        "name": "jobTypes[]",
                        "in": "query",
                        "description": "Filter by job type IDs.",
                        "schema": {
                            "type": "array",
                            "items": {}
                        }
                    },
                    {
                        "name": "experienceLevels[]",
                        "in": "query",
                        "description": "Filter by experience level IDs.",
                        "schema": {
                            "type": "array",
                            "items": {}
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Free-text search over title and description.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sortField",
                        "in": "query",
                        "description": "Column to sort by (e.g. posted_at, title).",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sortOrder",
                        "in": "query",
                        "description": "Sort direction: asc or desc.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Filtered jobs retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobs": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "jobs"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/available-jobs": {
            "get": {
                "operationId": "jobSawake.publicIndex",
                "description": "Returns a paginated list (25 per page) of active job postings with their\nrelated data. Publicly accessible \u2014 no authentication required.",
                "summary": "List public jobs",
                "tags": [
                    "Public Jobs"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Jobs retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "jobs": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "jobs"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/available-jobs\/{slug}": {
            "get": {
                "operationId": "jobSawake.publicShow",
                "description": "Retrieves a single active job posting by its unique slug, with all\nrelated data. Publicly accessible \u2014 no authentication required.",
                "summary": "Show a public job",
                "tags": [
                    "Public Jobs"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Job retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "job": {
                                                    "$ref": "#\/components\/schemas\/JobSawakeResource"
                                                }
                                            },
                                            "required": [
                                                "job"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/application-stages\/{id}": {
            "get": {
                "operationId": "applicationStage.show_0",
                "description": "Retrieves a single application stage resolved by route-model binding.\nRequires the application stages \"view\" permission.",
                "summary": "Show an application stage",
                "tags": [
                    "Application Stages"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stage retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applicationStage": {
                                                    "$ref": "#\/components\/schemas\/ApplicationStageResource"
                                                }
                                            },
                                            "required": [
                                                "applicationStage"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this application stage"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/application-stages": {
            "get": {
                "operationId": "application-stages.index",
                "description": "Retrieves all application stages, ordered by most recently created.\nRequires the application stages \"view\" permission.",
                "summary": "List application stages",
                "tags": [
                    "Application Stages"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stages retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applicationStages": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/ApplicationStageResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "applicationStages"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view application stages"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "application-stages.store",
                "description": "Creates a new application stage (or returns the existing one with the\nsame name), auto-generating a slug from the name. Requires the\napplication stages \"create\" permission.",
                "summary": "Create an application stage",
                "tags": [
                    "Application Stages"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ApplicationStageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stage created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applicationStage": {
                                                    "$ref": "#\/components\/schemas\/ApplicationStageResource"
                                                }
                                            },
                                            "required": [
                                                "applicationStage"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to create application stages"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/application-stages\/{applicationStage}": {
            "get": {
                "operationId": "application-stages.show",
                "description": "Retrieves a single application stage resolved by route-model binding.\nRequires the application stages \"view\" permission.",
                "summary": "Show an application stage",
                "tags": [
                    "Application Stages"
                ],
                "parameters": [
                    {
                        "name": "applicationStage",
                        "in": "path",
                        "required": true,
                        "description": "The application stage ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stage retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applicationStage": {
                                                    "$ref": "#\/components\/schemas\/ApplicationStageResource"
                                                }
                                            },
                                            "required": [
                                                "applicationStage"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to view this application stage"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            },
            "put": {
                "operationId": "application-stages.update",
                "description": "Updates an application stage's name. Falls back to the existing value\nwhen omitted. Requires the application stages \"update\" permission.",
                "summary": "Update an application stage",
                "tags": [
                    "Application Stages"
                ],
                "parameters": [
                    {
                        "name": "applicationStage",
                        "in": "path",
                        "required": true,
                        "description": "The application stage ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ApplicationStageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stage updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applicationStage": {
                                                    "$ref": "#\/components\/schemas\/ApplicationStageResource"
                                                }
                                            },
                                            "required": [
                                                "applicationStage"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to update application stages"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "application-stages.destroy",
                "description": "Permanently deletes an application stage resolved by route-model binding.\nRequires the application stages \"delete\" permission.",
                "summary": "Delete an application stage",
                "tags": [
                    "Application Stages"
                ],
                "parameters": [
                    {
                        "name": "applicationStage",
                        "in": "path",
                        "required": true,
                        "description": "The application stage ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application stage deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You do not have permission to delete application stages"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/applications": {
            "post": {
                "operationId": "application.store",
                "description": "Submits a job application with any required document files. Rejects\nduplicate submissions for the same job and email \u2014 returning **403** if the\nprevious application was rejected, or **409** if one is already pending \u2014\nassigns the application to the first application stage by position, and\nstores each uploaded document. Publicly accessible. Send as\nmultipart\/form-data.",
                "summary": "Submit an application",
                "tags": [
                    "Applications"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ApplicationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application submitted successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "application": {
                                                    "$ref": "#\/components\/schemas\/ApplicationResource"
                                                }
                                            },
                                            "required": [
                                                "application"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "You have already applied for this job."
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Your application for this job was previously rejected."
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            },
            "get": {
                "operationId": "application.index",
                "description": "Retrieves all applications with their job, stage and uploaded documents,\nordered by most recently created.",
                "summary": "List applications",
                "tags": [
                    "Applications"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Applications retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "applications": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/ApplicationResource"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "applications"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/applications\/{id}": {
            "get": {
                "operationId": "application.show",
                "description": "Retrieves a single application with its job, stage, uploaded documents and\nnotes. Returns **404** if the application is not found.",
                "summary": "Show an application",
                "tags": [
                    "Applications"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application retrieved successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "application": {
                                                    "$ref": "#\/components\/schemas\/ApplicationResource"
                                                }
                                            },
                                            "required": [
                                                "application"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "operationId": "application.update",
                "description": "Updates an application's status and stage, and optionally appends one or\nmore notes (attributed to the authenticated user). Returns **404** if the\napplication is not found.",
                "summary": "Update an application",
                "tags": [
                    "Applications"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "application": {
                                                    "$ref": "#\/components\/schemas\/ApplicationResource"
                                                }
                                            },
                                            "required": [
                                                "application"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "application.destroy",
                "description": "Permanently deletes an application by ID, removing its uploaded files from\nstorage first. Returns **404** if the application is not found.",
                "summary": "Delete an application",
                "tags": [
                    "Applications"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/applications\/{id}\/status": {
            "put": {
                "operationId": "application.updateStatus",
                "description": "Updates the application's status and moves it to the given stage. The\nstatus must be one of Applied, Screening, Interview, Rejected or Hired, and\nthe stage must reference an existing application stage. Returns **404** if\nthe application is not found.",
                "summary": "Update application status",
                "tags": [
                    "Applications"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ApplicationStatusRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application status updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "application": {
                                                    "$ref": "#\/components\/schemas\/ApplicationResource"
                                                }
                                            },
                                            "required": [
                                                "application"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Application not found"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/admin\/regions\/unassigned-users": {
            "get": {
                "operationId": "adminRegion.unassignedUsers",
                "description": "Retrieves enumerators that have not yet been assigned to any region.\nRequires authentication.",
                "summary": "List unassigned enumerators",
                "tags": [
                    "Enumerator Management"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Unassigned enumerators"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/User"
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/enumerators": {
            "post": {
                "operationId": "adminRegion.createEnumerator",
                "description": "Registers a new enumerator with a system-generated password. Rejects\nduplicate email or work number with a **422** and a field-level error.\nRequires authentication.",
                "summary": "Create an enumerator",
                "tags": [
                    "Enumerator Management"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RegisterRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerator created successfully"
                                        },
                                        "data": {
                                            "$ref": "#\/components\/schemas\/User"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/enumerators\/{id}": {
            "put": {
                "operationId": "adminRegion.editEnumerator",
                "description": "Updates an enumerator's name, email, work number and region. Email and\nwork number must remain unique. Returns **404** if the enumerator is not\nfound. Requires authentication.",
                "summary": "Update an enumerator",
                "tags": [
                    "Enumerator Management"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "work_number": {
                                        "type": "string"
                                    },
                                    "region_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "work_number",
                                    "region_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerator updated"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "adminRegion.deleteEnumerator",
                "description": "Soft-deletes an enumerator, first suffixing their email and work number\nso those values can be reused. Returns **404** if not found. Requires\nauthentication.",
                "summary": "Delete an enumerator",
                "tags": [
                    "Enumerator Management"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerator deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/list-of-enumerators": {
            "get": {
                "operationId": "adminRegion.getEnumerators",
                "description": "Retrieves enumerators with their region, optionally filtered by region.\nRequires authentication.",
                "summary": "List enumerators",
                "tags": [
                    "Enumerator Management"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerators list"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/User"
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/regions": {
            "post": {
                "operationId": "adminRegion.store",
                "description": "Creates a new region. The name must be unique. Requires authentication.",
                "summary": "Create a region",
                "tags": [
                    "Regions"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Region created"
                                        },
                                        "data": {
                                            "$ref": "#\/components\/schemas\/Region"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "adminRegion.index",
                "description": "Retrieves all regions, each with its associated users. Requires\nauthentication.",
                "summary": "List regions",
                "tags": [
                    "Regions"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Regions list"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/Region"
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/regions\/{id}": {
            "delete": {
                "operationId": "adminRegion.deleteRegion",
                "description": "Deletes a region only if it has no associated users or survey responses;\notherwise returns **422** with a message explaining what must be\nreassigned first. Returns **404** if not found. Requires authentication.",
                "summary": "Delete a region",
                "tags": [
                    "Regions"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Region deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Cannot delete this region. "
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/regions\/assign-user": {
            "post": {
                "operationId": "adminRegion.assignUser",
                "description": "Assigns a region to a user. Only users with the enumerator role can be\nassigned; other roles are rejected. Requires authentication.",
                "summary": "Assign a region to an enumerator",
                "tags": [
                    "Regions"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "region_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "user_id",
                                    "region_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Region assigned to user"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Only enumerators can be assigned regions"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/surveys": {
            "post": {
                "operationId": "adminSurvey.store",
                "description": "Creates a new survey from a title and description. Requires authentication.",
                "summary": "Create a survey",
                "tags": [
                    "Survey Management"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey created"
                                        },
                                        "data": {
                                            "$ref": "#\/components\/schemas\/Survey"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/surveys\/{surveyId}": {
            "put": {
                "operationId": "adminSurvey.update",
                "description": "Updates a survey's title and description. Returns **404** if not found.\nRequires authentication.",
                "summary": "Update a survey",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "surveyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "adminSurvey.deleteSurvey",
                "description": "Permanently deletes a survey along with all of its questions, responses\nand their answers. Returns **404** if not found. Requires authentication.",
                "summary": "Delete a survey",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "surveyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/surveys\/{surveyId}\/questions": {
            "post": {
                "operationId": "adminSurvey.addQuestion",
                "description": "Adds a question to a survey. Supports text, select, multiple_select,\nnumber and textarea types, optional choice options, and nesting under a\nparent question. Requires authentication.",
                "summary": "Add a survey question",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "surveyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "question": {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "text",
                                            "select",
                                            "multiple_select",
                                            "number",
                                            "textarea"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "parent_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "option_text": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "question",
                                    "type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Question added"
                                        },
                                        "data": {
                                            "$ref": "#\/components\/schemas\/SurveyQuestion"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/questions\/{questionId}": {
            "put": {
                "operationId": "adminSurvey.editQuestion",
                "description": "Updates a question's text, type, options, order and parent. Fields fall\nback to existing values when omitted. Returns **404** if not found.\nRequires authentication.",
                "summary": "Update a survey question",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "questionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "question": {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "text",
                                            "select",
                                            "multiple_select",
                                            "number",
                                            "textarea"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "order": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "parent_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "option_text": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "question",
                                    "type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Question updated"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "adminSurvey.deleteQuestion",
                "description": "Deletes a question and its associated answers. Returns **404** if not\nfound. Requires authentication.",
                "summary": "Delete a survey question",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "questionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Question deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/surveys\/{id}\/responses": {
            "get": {
                "operationId": "adminSurvey.responses",
                "description": "Retrieves survey responses with their user, region and answers (including\neach answer's question), optionally filtered by region. Requires\nauthentication.",
                "summary": "List survey responses",
                "tags": [
                    "Survey Management"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Responses"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/knowledge-base": {
            "get": {
                "operationId": "adminSurvey.getSurveyDocuments_0",
                "description": "Retrieves survey documents (optionally filtered by survey), each with a\npublic URL to the stored file. Requires authentication.",
                "summary": "List survey documents",
                "tags": [
                    "Survey Documents"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey documents fetched successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file_type": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file_size": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "url": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "description",
                                                    "file_type",
                                                    "file_size",
                                                    "url",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/admin\/info-documents": {
            "post": {
                "operationId": "adminSurvey.uploadSurveyDocument",
                "description": "Uploads a document (max 10 MB) to public storage and records its\nmetadata, optionally linking it to a survey. Requires authentication.",
                "summary": "Upload a survey document",
                "tags": [
                    "Survey Documents"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "file": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application\/octet-stream",
                                        "maxLength": 10240
                                    },
                                    "survey_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "name",
                                    "file"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Document uploaded successfully"
                                        },
                                        "data": {
                                            "$ref": "#\/components\/schemas\/SurveyDocument"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "adminSurvey.getSurveyDocuments_1",
                "description": "Retrieves survey documents (optionally filtered by survey), each with a\npublic URL to the stored file. Requires authentication.",
                "summary": "List survey documents",
                "tags": [
                    "Survey Documents"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey documents fetched successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file_type": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file_size": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "url": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "description",
                                                    "file_type",
                                                    "file_size",
                                                    "url",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/info-documents\/{id}": {
            "delete": {
                "operationId": "adminSurvey.deleteSurveyDocument",
                "description": "Deletes a survey document record and removes the underlying file from\nstorage. Returns **404** if not found. Requires authentication.",
                "summary": "Delete a survey document",
                "tags": [
                    "Survey Documents"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey document deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/newsletter-subscription": {
            "post": {
                "operationId": "newsletterSubscription.store",
                "description": "Subscribes an email address to the newsletter. Idempotent by design: an\nalready-subscribed address is acknowledged without change, a previously\nunsubscribed address is reactivated, and a new address is created with a\n**201**. Publicly accessible \u2014 no authentication required.",
                "summary": "Subscribe to the newsletter",
                "tags": [
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/NewsletterSubscriptionRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Thank you for subscribing! You will now receive the latest news, updates, and insights from us directly in your inbox."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Welcome back! Your newsletter subscription has been reactivated."
                                                },
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "You are already subscribed to our newsletter. Stay tuned for our latest updates!"
                                                },
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message",
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                },
                "security": []
            }
        },
        "\/surveys": {
            "get": {
                "operationId": "surveySubmission.allSurveys",
                "description": "Retrieves all active surveys with their questions and a question count,\nordered by most recently created. Requires authentication.",
                "summary": "List all active surveys",
                "tags": [
                    "Survey Submissions"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Active surveys"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_active": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "questions_count": {
                                                        "type": "integer",
                                                        "minimum": 0
                                                    },
                                                    "questions": {
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#\/components\/schemas\/SurveyQuestion"
                                                        }
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "title",
                                                    "description",
                                                    "is_active",
                                                    "created_at",
                                                    "questions_count",
                                                    "questions"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/surveys\/my-outlets": {
            "get": {
                "operationId": "surveySubmission.myOutlets",
                "description": "Returns the outlets the authenticated enumerator has surveyed, with a\nsummary of areas covered. Derives each outlet's channel from the relevant\nsurvey answer. Requires authentication.",
                "summary": "List my outlets",
                "tags": [
                    "Survey Submissions"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "My outlets"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "outlets": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "outlet_name": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "area": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "channel": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "survey": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "visited_at": {
                                                                "type": "string"
                                                            },
                                                            "answers_count": {
                                                                "type": "integer",
                                                                "minimum": 0
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "outlet_name",
                                                            "area",
                                                            "channel",
                                                            "survey",
                                                            "visited_at",
                                                            "answers_count"
                                                        ]
                                                    }
                                                },
                                                "total": {
                                                    "type": "string"
                                                },
                                                "areas_covered": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "outlets",
                                                "total",
                                                "areas_covered"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/surveys\/my-reports": {
            "get": {
                "operationId": "surveySubmission.myReports",
                "description": "Builds a per-survey analytics report for the authenticated enumerator's\nsubmissions. Each survey is analysed by its own questions; retail metrics\n(spend, brand availability, cartons, price) are included only for surveys\nthat have those questions. Requires authentication.",
                "summary": "My reports (dynamic, per survey)",
                "tags": [
                    "Survey Submissions"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "My reports"
                                                },
                                                "data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "surveys": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "survey_id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "survey_title": {
                                                                        "anyOf": [
                                                                            {
                                                                                "type": "string"
                                                                            },
                                                                            {
                                                                                "type": "string",
                                                                                "enum": [
                                                                                    "Survey"
                                                                                ]
                                                                            }
                                                                        ]
                                                                    },
                                                                    "total": {
                                                                        "type": "integer",
                                                                        "minimum": 0
                                                                    },
                                                                    "survey_kind": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "retail",
                                                                            "generic"
                                                                        ]
                                                                    },
                                                                    "questions": {
                                                                        "type": "string"
                                                                    },
                                                                    "region_counts": {
                                                                        "type": "string"
                                                                    },
                                                                    "enumerator_counts": {
                                                                        "type": "string"
                                                                    },
                                                                    "days_active": {
                                                                        "type": "integer",
                                                                        "minimum": 0
                                                                    },
                                                                    "retail": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "avg_spend": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "number"
                                                                                    },
                                                                                    {
                                                                                        "type": "integer",
                                                                                        "enum": [
                                                                                            0
                                                                                        ]
                                                                                    }
                                                                                ]
                                                                            },
                                                                            "brand_availability": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "object",
                                                                                    "properties": {
                                                                                        "brand": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "available": {
                                                                                            "type": "integer",
                                                                                            "minimum": 0
                                                                                        },
                                                                                        "total": {
                                                                                            "type": "integer",
                                                                                            "minimum": 0
                                                                                        },
                                                                                        "percentage": {
                                                                                            "anyOf": [
                                                                                                {
                                                                                                    "type": "number"
                                                                                                },
                                                                                                {
                                                                                                    "type": "integer",
                                                                                                    "enum": [
                                                                                                        0
                                                                                                    ]
                                                                                                }
                                                                                            ]
                                                                                        },
                                                                                        "question_id": {
                                                                                            "type": "string"
                                                                                        }
                                                                                    },
                                                                                    "required": [
                                                                                        "brand",
                                                                                        "available",
                                                                                        "total",
                                                                                        "percentage",
                                                                                        "question_id"
                                                                                    ]
                                                                                }
                                                                            },
                                                                            "brand_cartons": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "object",
                                                                                    "properties": {
                                                                                        "brand": {
                                                                                            "anyOf": [
                                                                                                {
                                                                                                    "type": "string"
                                                                                                },
                                                                                                {
                                                                                                    "type": "string",
                                                                                                    "enum": [
                                                                                                        "Unknown"
                                                                                                    ]
                                                                                                }
                                                                                            ]
                                                                                        },
                                                                                        "question_id": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "total_cartons": {
                                                                                            "type": "string"
                                                                                        },
                                                                                        "avg_cartons": {
                                                                                            "anyOf": [
                                                                                                {
                                                                                                    "type": "number"
                                                                                                },
                                                                                                {
                                                                                                    "type": "integer",
                                                                                                    "enum": [
                                                                                                        0
                                                                                                    ]
                                                                                                }
                                                                                            ]
                                                                                        },
                                                                                        "responses_with_data": {
                                                                                            "type": "integer",
                                                                                            "minimum": 0
                                                                                        }
                                                                                    },
                                                                                    "required": [
                                                                                        "brand",
                                                                                        "question_id",
                                                                                        "total_cartons",
                                                                                        "avg_cartons",
                                                                                        "responses_with_data"
                                                                                    ]
                                                                                }
                                                                            },
                                                                            "indomie_price": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "avg_regular": {
                                                                                        "type": [
                                                                                            "number",
                                                                                            "null"
                                                                                        ]
                                                                                    },
                                                                                    "avg_jumbo": {
                                                                                        "type": [
                                                                                            "number",
                                                                                            "null"
                                                                                        ]
                                                                                    },
                                                                                    "min_regular": {},
                                                                                    "max_regular": {},
                                                                                    "min_jumbo": {},
                                                                                    "max_jumbo": {},
                                                                                    "entries": {
                                                                                        "type": "array",
                                                                                        "items": {
                                                                                            "type": "object",
                                                                                            "properties": {
                                                                                                "regular": {
                                                                                                    "type": [
                                                                                                        "number",
                                                                                                        "null"
                                                                                                    ]
                                                                                                },
                                                                                                "jumbo": {
                                                                                                    "type": [
                                                                                                        "number",
                                                                                                        "null"
                                                                                                    ]
                                                                                                },
                                                                                                "raw": {
                                                                                                    "type": [
                                                                                                        "string",
                                                                                                        "null"
                                                                                                    ]
                                                                                                }
                                                                                            },
                                                                                            "required": [
                                                                                                "regular",
                                                                                                "jumbo",
                                                                                                "raw"
                                                                                            ]
                                                                                        }
                                                                                    }
                                                                                },
                                                                                "required": [
                                                                                    "avg_regular",
                                                                                    "avg_jumbo",
                                                                                    "min_regular",
                                                                                    "max_regular",
                                                                                    "min_jumbo",
                                                                                    "max_jumbo",
                                                                                    "entries"
                                                                                ]
                                                                            },
                                                                            "by_area": {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": "integer",
                                                                                    "minimum": 0
                                                                                }
                                                                            },
                                                                            "by_channel": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "array",
                                                                                        "items": {
                                                                                            "type": "integer"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "type": "array",
                                                                                        "items": {
                                                                                            "type": "string"
                                                                                        }
                                                                                    }
                                                                                ]
                                                                            },
                                                                            "top_products": {
                                                                                "anyOf": [
                                                                                    {
                                                                                        "type": "array",
                                                                                        "items": {
                                                                                            "type": "integer"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "type": "array",
                                                                                        "items": {
                                                                                            "type": "string"
                                                                                        }
                                                                                    }
                                                                                ]
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "avg_spend",
                                                                            "brand_availability",
                                                                            "brand_cartons",
                                                                            "indomie_price",
                                                                            "by_area",
                                                                            "by_channel",
                                                                            "top_products"
                                                                        ]
                                                                    }
                                                                },
                                                                "required": [
                                                                    "survey_id",
                                                                    "survey_title",
                                                                    "total",
                                                                    "survey_kind",
                                                                    "questions",
                                                                    "region_counts",
                                                                    "enumerator_counts",
                                                                    "days_active",
                                                                    "retail"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "total",
                                                        "surveys"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "My reports"
                                                },
                                                "data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer"
                                                        },
                                                        "surveys": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0,
                                                            "additionalItems": false
                                                        }
                                                    },
                                                    "required": [
                                                        "total",
                                                        "surveys"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message",
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/surveys\/{surveyId}": {
            "get": {
                "operationId": "surveySubmission.getSurvey",
                "description": "Retrieves a single survey with its questions. Returns an error if the\nsurvey is not found. Requires authentication.",
                "summary": "Get a survey",
                "tags": [
                    "Survey Submissions"
                ],
                "parameters": [
                    {
                        "name": "surveyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey details"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey not found"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/surveys\/{surveyId}\/submit": {
            "post": {
                "operationId": "surveySubmission.submit",
                "description": "Submits an enumerator's answers for a survey as a single response,\nassociating it with the enumerator's region and the given outlet\/area.\nChild questions are only recorded when their parent's selected options\nmatch. Runs in a transaction and rolls back on failure. Requires\nauthentication.",
                "summary": "Submit a survey",
                "tags": [
                    "Survey Submissions"
                ],
                "parameters": [
                    {
                        "name": "surveyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answers": {
                                        "type": "array",
                                        "items": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "answers"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Submission failed, please try again"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Survey submitted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/responses\/{responseId}": {
            "get": {
                "operationId": "surveySubmission.getResponse",
                "description": "Retrieves a single survey response with its survey, answers (and their\nquestions), submitting user and region. Returns an error if not found.\nRequires authentication.",
                "summary": "Get a response",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "responseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response details"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response not found"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "surveySubmission.updateResponse",
                "description": "Updates a response's outlet name and area, and upserts any supplied\nanswers. Runs in a transaction and returns the refreshed response.\nReturns **404** if not found. Requires authentication.",
                "summary": "Update a response",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "responseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "outlet_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "area": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "answers": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "surveySubmission.deleteResponse",
                "description": "Deletes a response together with all of its answers, in a transaction.\nReturns **404** if not found. Requires authentication.",
                "summary": "Delete a response",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "responseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/responses\/{responseId}\/answers": {
            "get": {
                "operationId": "surveySubmission.getAnswers",
                "description": "Retrieves the answers for a response, each enriched with its question and\nnormalized representations: the raw stored string, an array form (split\nfor multi-select), a first-value convenience field, and parsed prices for\nprice-type text questions. Returns an error if the response is not found.\nRequires authentication.",
                "summary": "Get response answers",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "responseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response answers"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Response not found"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/answers\/{answerId}": {
            "put": {
                "operationId": "surveySubmission.updateAnswer",
                "description": "Updates the raw value of a single answer and returns it with its question.\nReturns **404** if not found. Requires authentication.",
                "summary": "Update an answer",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "answerId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answer": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "answer"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Answer updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "surveySubmission.deleteAnswer",
                "description": "Deletes a single answer. Returns **404** if not found. Requires\nauthentication.",
                "summary": "Delete an answer",
                "tags": [
                    "Survey Responses"
                ],
                "parameters": [
                    {
                        "name": "answerId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Answer deleted successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/dashboard": {
            "get": {
                "operationId": "dashboard.index",
                "description": "Returns the full analytics dashboard for a date range (defaulting to the\nlast 30 days): high-level overview counts, survey\/enumerator\/regional\nperformance, a 7-day response trend, top enumerators, recent activity,\nquestion-type analysis and data-quality metrics. Requires authentication.",
                "summary": "Dashboard overview",
                "tags": [
                    "Dashboard"
                ],
                "parameters": [
                    {
                        "name": "start_date",
                        "in": "query",
                        "description": "Start of the reporting window (Y-m-d). Defaults to 30 days ago.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "end_date",
                        "in": "query",
                        "description": "End of the reporting window (Y-m-d). Defaults to today.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Dashboard data"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "overview": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_surveys": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "active_surveys": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_enumerators": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "active_enumerators": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_regions": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_responses": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_answers": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        }
                                                    },
                                                    "required": [
                                                        "total_surveys",
                                                        "active_surveys",
                                                        "total_enumerators",
                                                        "active_enumerators",
                                                        "total_regions",
                                                        "total_responses",
                                                        "total_answers"
                                                    ]
                                                },
                                                "survey_performance": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "is_active": {
                                                                "type": "integer"
                                                            },
                                                            "questions_count": {
                                                                "type": "string"
                                                            },
                                                            "responses_count": {
                                                                "type": "string"
                                                            },
                                                            "completion_rate": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "created_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "is_active",
                                                            "questions_count",
                                                            "responses_count",
                                                            "completion_rate",
                                                            "created_at"
                                                        ]
                                                    }
                                                },
                                                "enumerator_performance": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "work_number": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "region": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "total_responses": {
                                                                "type": "string"
                                                            },
                                                            "today_responses": {
                                                                "type": "string"
                                                            },
                                                            "last_activity": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "No activity"
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "work_number",
                                                            "region",
                                                            "total_responses",
                                                            "today_responses",
                                                            "last_activity"
                                                        ]
                                                    }
                                                },
                                                "regional_performance": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "enumerators_count": {
                                                                "type": "string"
                                                            },
                                                            "responses_count": {
                                                                "type": "string"
                                                            },
                                                            "avg_responses_per_enumerator": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "enumerators_count",
                                                            "responses_count",
                                                            "avg_responses_per_enumerator"
                                                        ]
                                                    }
                                                },
                                                "response_trends": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "top_enumerators": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "region": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "responses_count": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "name",
                                                            "region",
                                                            "responses_count"
                                                        ]
                                                    }
                                                },
                                                "recent_activity": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "outlet_name": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "area": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "enumerator": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "survey": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "created_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "outlet_name",
                                                            "area",
                                                            "enumerator",
                                                            "survey",
                                                            "created_at"
                                                        ]
                                                    }
                                                },
                                                "question_analysis": {
                                                    "type": "string"
                                                },
                                                "quality_metrics": {
                                                    "type": "object",
                                                    "properties": {
                                                        "avg_answers_per_response": {
                                                            "type": "number"
                                                        },
                                                        "responses_with_complete_data": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "data_completion_rate": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "number"
                                                                },
                                                                {
                                                                    "type": "integer",
                                                                    "enum": [
                                                                        0
                                                                    ]
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "avg_answers_per_response",
                                                        "responses_with_complete_data",
                                                        "data_completion_rate"
                                                    ]
                                                },
                                                "date_range": {
                                                    "type": "object",
                                                    "properties": {
                                                        "start_date": {},
                                                        "end_date": {}
                                                    },
                                                    "required": [
                                                        "start_date",
                                                        "end_date"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "overview",
                                                "survey_performance",
                                                "enumerator_performance",
                                                "regional_performance",
                                                "response_trends",
                                                "top_enumerators",
                                                "recent_activity",
                                                "question_analysis",
                                                "quality_metrics",
                                                "date_range"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/dashboard\/quick-stats": {
            "get": {
                "operationId": "dashboard.quickStats",
                "description": "Returns a compact snapshot of key metrics: today's new responses and\nactive enumerators, this month's new responses and enumerators, and\noverall totals. Requires authentication.",
                "summary": "Quick stats",
                "tags": [
                    "Dashboard"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Quick stats"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "today": {
                                                    "type": "object",
                                                    "properties": {
                                                        "new_responses": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "active_enumerators": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        }
                                                    },
                                                    "required": [
                                                        "new_responses",
                                                        "active_enumerators"
                                                    ]
                                                },
                                                "this_month": {
                                                    "type": "object",
                                                    "properties": {
                                                        "new_responses": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "new_enumerators": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        }
                                                    },
                                                    "required": [
                                                        "new_responses",
                                                        "new_enumerators"
                                                    ]
                                                },
                                                "overall": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_surveys": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_enumerators": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_responses": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "total_regions": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        }
                                                    },
                                                    "required": [
                                                        "total_surveys",
                                                        "total_enumerators",
                                                        "total_responses",
                                                        "total_regions"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "today",
                                                "this_month",
                                                "overall"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/dashboard\/enumerator\/{enumeratorId}": {
            "get": {
                "operationId": "dashboard.enumeratorDetails",
                "description": "Returns a detailed performance profile for a single enumerator over a\ndate range (defaulting to the last 30 days): profile, performance\nsummary, 30-day daily activity, per-survey breakdown and recent\nresponses. Returns an error if the enumerator is not found. Requires\nauthentication.",
                "summary": "Enumerator details",
                "tags": [
                    "Dashboard"
                ],
                "parameters": [
                    {
                        "name": "enumeratorId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "start_date",
                        "in": "query",
                        "description": "Start of the reporting window (Y-m-d). Defaults to 30 days ago.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "end_date",
                        "in": "query",
                        "description": "End of the reporting window (Y-m-d). Defaults to today.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerator details"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "enumerator": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "work_number": {
                                                            "type": "string"
                                                        },
                                                        "region": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "N\/A"
                                                                    ]
                                                                }
                                                            ]
                                                        },
                                                        "created_at": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "work_number",
                                                        "region",
                                                        "created_at"
                                                    ]
                                                },
                                                "performance": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_responses": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "avg_responses_per_day": {
                                                            "type": "number"
                                                        },
                                                        "areas_covered": {
                                                            "type": "integer",
                                                            "minimum": 0
                                                        },
                                                        "avg_answers_per_response": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "total_responses",
                                                        "avg_responses_per_day",
                                                        "areas_covered",
                                                        "avg_answers_per_response"
                                                    ]
                                                },
                                                "daily_activity": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "survey_breakdown": {
                                                    "type": "string"
                                                },
                                                "recent_responses": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "outlet_name": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "area": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "survey": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "N\/A"
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "answers_count": {
                                                                "type": "integer",
                                                                "minimum": 0
                                                            },
                                                            "created_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "outlet_name",
                                                            "area",
                                                            "survey",
                                                            "answers_count",
                                                            "created_at"
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "enumerator",
                                                "performance",
                                                "daily_activity",
                                                "survey_breakdown",
                                                "recent_responses"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enumerator not found"
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "http": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "token"
            }
        },
        "schemas": {
            "ApplicationNote": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "application_id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "note": {
                        "type": "string"
                    },
                    "type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "application_id",
                    "user_id",
                    "note",
                    "type",
                    "created_at",
                    "updated_at"
                ],
                "title": "ApplicationNote"
            },
            "ApplicationRequest": {
                "type": "object",
                "properties": {
                    "job_id": {
                        "type": "integer"
                    },
                    "first_name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "last_name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 255
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 20
                    },
                    "cover_letter": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "documents": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "description": "One uploaded file per required-document type",
                        "items": {
                            "type": "object",
                            "properties": {
                                "document_id": {
                                    "type": "integer"
                                },
                                "file": {
                                    "type": "string",
                                    "format": "binary",
                                    "contentMediaType": "application\/octet-stream",
                                    "maxLength": 10240
                                }
                            },
                            "required": [
                                "document_id",
                                "file"
                            ]
                        }
                    }
                },
                "required": [
                    "job_id",
                    "first_name",
                    "last_name",
                    "email"
                ],
                "title": "ApplicationRequest"
            },
            "ApplicationResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "job": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "title": {
                                "type": "string"
                            },
                            "slug": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "title",
                            "slug"
                        ]
                    },
                    "first_name": {
                        "type": "string"
                    },
                    "last_name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cover_letter": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "stage": {
                        "$ref": "#\/components\/schemas\/ApplicationStage"
                    },
                    "documents": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "document_type": {
                                    "type": "string"
                                },
                                "file_name": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "file_size": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ]
                                },
                                "file_type": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "file_url": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "id",
                                "document_type",
                                "file_name",
                                "file_size",
                                "file_type",
                                "file_url"
                            ]
                        }
                    },
                    "notes": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/ApplicationNote"
                        }
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "job",
                    "first_name",
                    "last_name",
                    "email",
                    "phone",
                    "cover_letter",
                    "status",
                    "stage",
                    "created_at",
                    "updated_at"
                ],
                "title": "ApplicationResource"
            },
            "ApplicationStage": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "position": {
                        "type": "integer"
                    },
                    "is_final": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "position",
                    "is_final",
                    "created_at",
                    "updated_at"
                ],
                "title": "ApplicationStage"
            },
            "ApplicationStageRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "name"
                ],
                "title": "ApplicationStageRequest"
            },
            "ApplicationStageResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "ApplicationStageResource"
            },
            "ApplicationStatusRequest": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "enum": [
                            "Applied",
                            "Screening",
                            "Interview",
                            "Rejected",
                            "Hired"
                        ]
                    },
                    "stage_id": {
                        "type": "integer"
                    }
                },
                "required": [
                    "status",
                    "stage_id"
                ],
                "title": "ApplicationStatusRequest"
            },
            "AssignPermissionsRequest": {
                "type": "object",
                "properties": {
                    "permissions": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "minItems": 1
                    }
                },
                "required": [
                    "permissions"
                ],
                "title": "AssignPermissionsRequest"
            },
            "BranchRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "location": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    }
                },
                "required": [
                    "name"
                ],
                "title": "BranchRequest"
            },
            "BranchResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "location": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "departments": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "slug": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "slug"
                            ]
                        }
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "location",
                    "created_at",
                    "updated_at"
                ],
                "title": "BranchResource"
            },
            "Department": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                ],
                "title": "Department"
            },
            "DepartmentRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "name"
                ],
                "title": "DepartmentRequest"
            },
            "DepartmentResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "users": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "email": {
                                    "type": "string"
                                },
                                "role": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "email",
                                "role"
                            ]
                        }
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "DepartmentResource"
            },
            "ExperienceLevel": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "ExperienceLevel"
            },
            "ExperienceLevelRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "name"
                ],
                "title": "ExperienceLevelRequest"
            },
            "ExperienceLevelResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "ExperienceLevelResource"
            },
            "ForgotPasswordRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    }
                },
                "required": [
                    "email"
                ],
                "title": "ForgotPasswordRequest"
            },
            "JobSawakeRequest": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "department_id": {
                        "type": "integer"
                    },
                    "location_id": {
                        "type": "integer"
                    },
                    "job_type_id": {
                        "type": "integer"
                    },
                    "experience_level_id": {
                        "type": "integer"
                    },
                    "salary_min": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "minimum": 0
                    },
                    "salary_max": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "salary_currency": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 10
                    },
                    "salary_visible": {
                        "type": "boolean"
                    },
                    "description": {
                        "type": "string"
                    },
                    "application_deadline": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "vacancies": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "responsibilities": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "requirements": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "benefits": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "tags": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string",
                            "maxLength": 50
                        }
                    },
                    "required_documents": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "integer"
                        }
                    }
                },
                "required": [
                    "title",
                    "department_id",
                    "location_id",
                    "job_type_id",
                    "experience_level_id",
                    "description",
                    "application_deadline",
                    "vacancies"
                ],
                "title": "JobSawakeRequest"
            },
            "JobSawakeResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "department": {
                        "$ref": "#\/components\/schemas\/Department"
                    },
                    "location": {
                        "$ref": "#\/components\/schemas\/Location"
                    },
                    "jobType": {
                        "$ref": "#\/components\/schemas\/JobType"
                    },
                    "experienceLevel": {
                        "$ref": "#\/components\/schemas\/ExperienceLevel"
                    },
                    "salary": {
                        "type": "object",
                        "properties": {
                            "min": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "max": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "currency": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "isVisible": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "min",
                            "max",
                            "currency",
                            "isVisible"
                        ]
                    },
                    "description": {
                        "type": "string"
                    },
                    "responsibilities": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {}
                            },
                            {
                                "type": "null"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "requirements": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {}
                            },
                            {
                                "type": "null"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "benefits": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {}
                            },
                            {
                                "type": "null"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "tags": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {}
                            },
                            {
                                "type": "null"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "minItems": 0,
                                "maxItems": 0,
                                "additionalItems": false
                            }
                        ]
                    },
                    "applicationDeadline": {
                        "type": "string"
                    },
                    "vacancies": {
                        "type": "integer"
                    },
                    "isActive": {
                        "type": "boolean"
                    },
                    "applicationsCount": {
                        "type": "integer"
                    },
                    "requiredDocuments": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/RequiredDocument"
                        }
                    },
                    "postedDate": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updatedDate": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "department",
                    "location",
                    "jobType",
                    "experienceLevel",
                    "salary",
                    "description",
                    "responsibilities",
                    "requirements",
                    "benefits",
                    "tags",
                    "applicationDeadline",
                    "vacancies",
                    "isActive",
                    "applicationsCount",
                    "requiredDocuments",
                    "postedDate",
                    "updatedDate"
                ],
                "title": "JobSawakeResource"
            },
            "JobType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "JobType"
            },
            "JobTypeRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "name"
                ],
                "title": "JobTypeRequest"
            },
            "JobTypeResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "JobTypeResource"
            },
            "Location": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": "string"
                    },
                    "country": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "type",
                    "address",
                    "city",
                    "country",
                    "created_at",
                    "updated_at"
                ],
                "title": "Location"
            },
            "LocationRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "office",
                            "factory",
                            "warehouse"
                        ]
                    },
                    "address": {
                        "type": "string",
                        "maxLength": 500
                    },
                    "city": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "country": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "name",
                    "type",
                    "address",
                    "city",
                    "country"
                ],
                "title": "LocationRequest"
            },
            "LocationResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": "string"
                    },
                    "country": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "type",
                    "address",
                    "city",
                    "country",
                    "created_at",
                    "updated_at"
                ],
                "title": "LocationResource"
            },
            "LoginRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "password": {
                        "type": "string"
                    }
                },
                "required": [
                    "email",
                    "password"
                ],
                "title": "LoginRequest"
            },
            "NewsletterSubscriptionRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    }
                },
                "required": [
                    "email"
                ],
                "title": "NewsletterSubscriptionRequest"
            },
            "PermissionResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name"
                ],
                "title": "PermissionResource"
            },
            "Region": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "created_at",
                    "updated_at"
                ],
                "title": "Region"
            },
            "RegisterRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "role": {
                        "type": "string"
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "email"
                    },
                    "password": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "minLength": 6
                    },
                    "work_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "region_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "branch_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "department_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "password_confirmation": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "minLength": 6
                    }
                },
                "required": [
                    "name",
                    "role"
                ],
                "title": "RegisterRequest"
            },
            "RequiredDocument": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "RequiredDocument"
            },
            "RequiredDocumentRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "name"
                ],
                "title": "RequiredDocumentRequest"
            },
            "RequiredDocumentResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "RequiredDocumentResource"
            },
            "ResetPasswordRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "otp": {
                        "type": "string"
                    },
                    "password": {
                        "type": "string",
                        "minLength": 6
                    },
                    "password_confirmation": {
                        "type": "string",
                        "minLength": 6
                    }
                },
                "required": [
                    "email",
                    "otp",
                    "password",
                    "password_confirmation"
                ],
                "title": "ResetPasswordRequest"
            },
            "RoleRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "permissions": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "name"
                ],
                "title": "RoleRequest"
            },
            "RoleResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "permissions": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "created_at",
                    "updated_at"
                ],
                "title": "RoleResource"
            },
            "Survey": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "description",
                    "is_active",
                    "created_at",
                    "updated_at"
                ],
                "title": "Survey"
            },
            "SurveyDocument": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "file_path": {
                        "type": "string"
                    },
                    "file_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "file_size": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "survey_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "description",
                    "file_path",
                    "file_type",
                    "file_size",
                    "survey_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "SurveyDocument"
            },
            "SurveyQuestion": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "survey_id": {
                        "type": "integer"
                    },
                    "question": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "options": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {}
                    },
                    "order": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "parent_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "option_text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "parent_option": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "survey_id",
                    "question",
                    "type",
                    "options",
                    "order",
                    "created_at",
                    "updated_at",
                    "parent_id",
                    "option_text",
                    "parent_option"
                ],
                "title": "SurveyQuestion"
            },
            "User": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "work_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "role": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "integer"
                    },
                    "email_verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "otp": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "otp_expires_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "region_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "deleted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "department_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "branch_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "name",
                    "email",
                    "work_number",
                    "role",
                    "is_active",
                    "email_verified_at",
                    "created_at",
                    "updated_at",
                    "otp",
                    "otp_expires_at",
                    "region_id",
                    "deleted_at",
                    "department_id",
                    "branch_id"
                ],
                "title": "User"
            },
            "VerifyOtpRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "otp": {
                        "type": "string"
                    }
                },
                "required": [
                    "email",
                    "otp"
                ],
                "title": "VerifyOtpRequest"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}