{
    "openapi": "3.1.0",
    "info": {
        "title": "Alkademy Learning API Service",
        "version": "0.0.1",
        "description": "Alkademy learning API Documentation"
    },
    "servers": [
        {
            "url": "http://lms-api.test/api",
            "description": "Live"
        },
        {
            "url": "https://api.alkademy.com/api",
            "description": "Prod"
        }
    ],
    "paths": {
        "/stripe/webhook": {
            "post": {
                "operationId": "publicApi.billing.webhook.stripe_0__post_stripe_webhook",
                "description": "Verifies the `Stripe-Signature` header against the configured webhook\nsecret, then persists the event to `iap_webhook_events`,\n`iap_transactions`, and (for subscription events) `iap_subscriptions`.\n\nDispatches background jobs for key event types:\n- `invoice.paid` \u2192 `ProcessStripeInvoicePaidJob`\n- `checkout.session.completed` / `payment_intent.succeeded` \u2192 `ProcessStripeCreditBundleJob`\n\nTo correctly route purchases, include `user_id`, `product_id`, and\n`type` in Stripe metadata when creating checkout sessions or subscriptions.\nExample: `['user_id' => 123, 'product_id' => 'credits.bundle.4', 'type' => 'addon_credits']`",
                "summary": "Receive Stripe webhook events",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/account": {
            "delete": {
                "operationId": "account.deleteAccount",
                "tags": [
                    "[Public] APIs",
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Account deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/account_disable": {
            "post": {
                "operationId": "account.accountDisable",
                "tags": [
                    "[Public] APIs",
                    "Account"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "account_password": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "validity": {
                                                    "type": "integer"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Mismatch password"
                                                }
                                            },
                                            "required": [
                                                "validity",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admins": {
            "get": {
                "operationId": "admin.users.admins_0",
                "tags": [
                    "[Public] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "admin"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/all_categories": {
            "get": {
                "operationId": "category.allCategories",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/apple-login": {
            "post": {
                "operationId": "auth.apple.login",
                "description": "Fetches Apple's public keys, verifies the supplied JWT identity token\nusing RS256, and extracts the user's `sub` (Apple user ID) and email.\nFinds or creates a matching local user account and issues a Sanctum token.\nNew accounts are auto-verified with the `student` role.\n\nAccepts either `identity_token` (iOS SDK default) or `id_token`\n(alternative field name) \u2014 at least one is required.",
                "summary": "Authenticate a user via Apple Sign In identity token",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "AppleAuth"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "identity_token": {
                                        "type": "string"
                                    },
                                    "id_token": {
                                        "type": "string"
                                    },
                                    "referral_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/applicant/quizzes/questions": {
            "get": {
                "operationId": "applicantQuiz.questions",
                "tags": [
                    "[Public] APIs",
                    "ApplicantQuiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "applicant_token",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quiz": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "course_id": {
                                                    "type": "string"
                                                },
                                                "section_id": {
                                                    "type": "string"
                                                },
                                                "retake": {
                                                    "type": "integer"
                                                },
                                                "total_mark": {
                                                    "type": "string"
                                                },
                                                "pass_mark": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "quiz_category": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "thumbnail"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "course_id",
                                                "section_id",
                                                "retake",
                                                "total_mark",
                                                "pass_mark",
                                                "description",
                                                "quiz_category"
                                            ]
                                        },
                                        "questions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "type": {
                                                        "type": "string"
                                                    },
                                                    "options": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "sort": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "title",
                                                    "type",
                                                    "options",
                                                    "sort"
                                                ]
                                            }
                                        },
                                        "attempts_used": {
                                            "type": "integer"
                                        },
                                        "attempts_allowed": {
                                            "type": "string"
                                        },
                                        "can_attempt": {
                                            "type": "boolean"
                                        },
                                        "course": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Course"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "owner_type": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "quiz",
                                        "questions",
                                        "attempts_used",
                                        "attempts_allowed",
                                        "can_attempt",
                                        "course",
                                        "owner_type"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid or expired applicant token."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz is not enabled yet."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/applicant/quizzes/{id}/submit": {
            "post": {
                "operationId": "applicantQuiz.submit",
                "tags": [
                    "[Public] APIs",
                    "ApplicantQuiz"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answers": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    },
                                    "applicant_token": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "answers"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz submitted successfully."
                                        },
                                        "submission": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_id": {
                                                    "type": "integer"
                                                },
                                                "correct_count": {
                                                    "type": "integer"
                                                },
                                                "wrong_count": {
                                                    "type": "integer"
                                                },
                                                "total_questions": {
                                                    "type": "string"
                                                },
                                                "score_percent": {
                                                    "anyOf": [
                                                        {
                                                            "type": "number"
                                                        },
                                                        {
                                                            "type": "integer",
                                                            "enum": [
                                                                0
                                                            ]
                                                        }
                                                    ]
                                                },
                                                "score_on_total": {
                                                    "type": "number"
                                                },
                                                "total_mark": {
                                                    "type": "number"
                                                },
                                                "pass_mark": {
                                                    "type": "number"
                                                },
                                                "passed": {
                                                    "type": "boolean"
                                                },
                                                "points_earned": {
                                                    "type": "integer"
                                                },
                                                "quiz_category": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "thumbnail"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_id",
                                                "correct_count",
                                                "wrong_count",
                                                "total_questions",
                                                "score_percent",
                                                "score_on_total",
                                                "total_mark",
                                                "pass_mark",
                                                "passed",
                                                "points_earned",
                                                "quiz_category"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "submission"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No more attempts allowed."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid or expired applicant token."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz is not enabled yet."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/auth/google-login": {
            "post": {
                "operationId": "publicApi.auth.googleLogin.login_0__post_v1_auth_google_login",
                "description": "Supports both legacy access-token flow and modern ID-token flow\n(Google Identity Services credential JWT).",
                "summary": "Authenticate a user via Google OAuth token",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "GoogleLogin"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "access_token": {
                                        "type": "string"
                                    },
                                    "id_token": {
                                        "type": "string"
                                    },
                                    "credential": {
                                        "type": "string"
                                    },
                                    "accessToken": {
                                        "type": "string"
                                    },
                                    "idToken": {
                                        "type": "string"
                                    },
                                    "token": {
                                        "type": "string"
                                    },
                                    "referral_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/auth/google/login": {
            "post": {
                "operationId": "publicApi.auth.googleLogin.login_0__post_v1_auth_google_login_2",
                "description": "Supports both legacy access-token flow and modern ID-token flow\n(Google Identity Services credential JWT).",
                "summary": "Authenticate a user via Google OAuth token",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "GoogleLogin"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "access_token": {
                                        "type": "string"
                                    },
                                    "id_token": {
                                        "type": "string"
                                    },
                                    "credential": {
                                        "type": "string"
                                    },
                                    "accessToken": {
                                        "type": "string"
                                    },
                                    "idToken": {
                                        "type": "string"
                                    },
                                    "token": {
                                        "type": "string"
                                    },
                                    "referral_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/auth/password/reset": {
            "post": {
                "operationId": "publicApi.auth.auth.forgotPassword_0__post_v1_auth_password_reset",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send Reset Password Link. Please check the email and try again."
                                        },
                                        "success_page_url": {
                                            "type": "string"
                                        },
                                        "login_url": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "success_page_url",
                                        "login_url"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Reset Password Link sent successfully to your email."
                                                },
                                                "success_page_url": {
                                                    "type": "string"
                                                },
                                                "login_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "success_page_url",
                                                "login_url"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/auth/password/update": {
            "post": {
                "operationId": "publicApi.auth.auth.resetPassword_0__post_v1_auth_password_update",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "token": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string"
                                    },
                                    "password_confirmation": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "token",
                                    "email",
                                    "password",
                                    "password_confirmation"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Password reset successfully."
                                                },
                                                "success_page_url": {
                                                    "type": "string"
                                                },
                                                "login_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "success_page_url",
                                                "login_url"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/blog-categories": {
            "get": {
                "operationId": "blogs.categories",
                "summary": "List blog categories",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BlogCategory"
                                            }
                                        }
                                    },
                                    "required": [
                                        "categories"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/blog-comments": {
            "post": {
                "operationId": "student.content.blog.storeComment_0__post_v1_blog_comments",
                "summary": "Add a comment to a blog post (supports replies via parent_id)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "blog_id": {
                                        "type": "integer"
                                    },
                                    "comment": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                    },
                                    "parent_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "blog_id",
                                    "comment"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment added."
                                        },
                                        "comment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "blog_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "parent_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "check": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "comment": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "likes": {
                                                    "type": "integer"
                                                },
                                                "user_liked": {
                                                    "type": "boolean"
                                                },
                                                "replies": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "blog_id",
                                                "user_id",
                                                "parent_id",
                                                "check",
                                                "comment",
                                                "created_at",
                                                "updated_at",
                                                "likes",
                                                "user_liked",
                                                "replies"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "comment"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/blog-comments/{id}": {
            "put": {
                "operationId": "student.content.blog.updateComment_0__put_v1_blog_comments_id",
                "summary": "Update a comment (owner only)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "comment": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                    }
                                },
                                "required": [
                                    "comment"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment updated."
                                        },
                                        "comment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "blog_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "parent_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "check": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "comment": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "likes": {
                                                    "type": "integer"
                                                },
                                                "user_liked": {
                                                    "type": "boolean"
                                                },
                                                "replies": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "blog_id",
                                                "user_id",
                                                "parent_id",
                                                "check",
                                                "comment",
                                                "created_at",
                                                "updated_at",
                                                "likes",
                                                "user_liked",
                                                "replies"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "comment"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.content.blog.deleteComment_1__delete_v1_blog_comments_id",
                "summary": "Delete a comment (owner or admin)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You can only delete your own comments."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/blog-comments/{id}/like": {
            "post": {
                "operationId": "student.content.blog.toggleCommentLike_0__post_v1_blog_comments_id_like",
                "summary": "Toggle like on a blog comment",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "liked": {
                                            "type": "string"
                                        },
                                        "likes": {
                                            "type": "string"
                                        },
                                        "user_liked": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "liked",
                                        "likes",
                                        "user_liked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/blogs": {
            "get": {
                "operationId": "blogs.index",
                "summary": "List published blog posts",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Blog"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/blogs/by_id/{id}": {
            "get": {
                "operationId": "blogs.showById",
                "summary": "Get a single blog post by ID with author info and comments",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "blog": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Blog"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "comments": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        },
                                        "like_count": {
                                            "type": "integer"
                                        },
                                        "comment_count": {
                                            "type": "integer"
                                        },
                                        "user_liked": {
                                            "type": "boolean"
                                        }
                                    },
                                    "required": [
                                        "blog",
                                        "comments",
                                        "like_count",
                                        "comment_count",
                                        "user_liked"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/blogs/{id}/like": {
            "post": {
                "operationId": "student.content.blog.toggleLike_0__post_v1_blogs_id_like",
                "summary": "Toggle like on a blog post",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "liked": {
                                            "type": "boolean"
                                        },
                                        "like_count": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "liked",
                                        "like_count"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/blogs/{slug}": {
            "get": {
                "operationId": "blogs.show",
                "summary": "Get a single blog post by slug with author info and comments",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "blog": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Blog"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "comments": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "like_count": {
                                            "type": "integer"
                                        },
                                        "comment_count": {
                                            "type": "integer"
                                        },
                                        "user_liked": {
                                            "type": "boolean"
                                        }
                                    },
                                    "required": [
                                        "blog",
                                        "comments",
                                        "like_count",
                                        "comment_count",
                                        "user_liked"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/books": {
            "get": {
                "operationId": "books.index",
                "description": "Returns all approved books ordered by newest first, paginated at\n20 per page. Requires Sanctum authentication.",
                "summary": "Get a paginated list of all approved books",
                "tags": [
                    "[Public] APIs",
                    "Books",
                    "Book"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/books/featured": {
            "get": {
                "operationId": "books.featured",
                "description": "Returns books (Ebook records) where `status = approved` and\n`is_featured = 1`, ordered by newest first, paginated at 10 per page.",
                "summary": "Get a paginated list of featured approved books",
                "tags": [
                    "[Public] APIs",
                    "Books",
                    "Book"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/bootcamp-categories": {
            "get": {
                "operationId": "bootcampCategory.index",
                "description": "Returns a paginated list of bootcamp categories.",
                "summary": "List bootcamp categories",
                "tags": [
                    "[Public] APIs",
                    "BootcampCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/BootcampCategory"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bootcamp-categories/{id}": {
            "get": {
                "operationId": "bootcampCategory.show",
                "description": "Returns a single category by ID.",
                "summary": "Show a bootcamp category",
                "tags": [
                    "[Public] APIs",
                    "BootcampCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Category ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bootcamps": {
            "post": {
                "operationId": "admin.bootcamp.adminBootcamp.store_0",
                "description": "Creates a new bootcamp for the authenticated instructor.",
                "summary": "Create a bootcamp",
                "tags": [
                    "[Public] APIs",
                    "AdminBootcamp"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "required": [
                                    "title",
                                    "description",
                                    "category_id",
                                    "is_paid"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp created successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "bootcampApi.index",
                "description": "Returns a paginated list of active bootcamps with lightweight summary fields.",
                "summary": "List published bootcamps",
                "tags": [
                    "[Public] APIs",
                    "Bootcamps",
                    "BootcampApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bootcamps/classes/{classId}/join": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.joinClass_0",
                "description": "Verifies the student has purchased the bootcamp, checks that the\nclass hasn't ended, and returns Zoom join data.",
                "summary": "Get join credentials for a bootcamp live class",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "classId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "class": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "string"
                                                },
                                                "end_time": {
                                                    "type": "string"
                                                },
                                                "provider": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "zoom"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "start_time",
                                                "end_time",
                                                "provider"
                                            ]
                                        },
                                        "join": {
                                            "type": "object",
                                            "properties": {
                                                "zoom_sdk": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "join_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_password": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "zoom_sdk",
                                                "join_url",
                                                "meeting_id",
                                                "meeting_password"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "class",
                                        "join"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This class has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You can join shortly before the scheduled time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Class not found or not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Active subscription required to join live classes."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/bootcamps/upcoming": {
            "get": {
                "operationId": "bootcamps.upcoming",
                "description": "Returns active bootcamps with publish date greater than or equal to today,\nincluding instructor details and the bootcamp date.",
                "summary": "List upcoming bootcamps from today onward",
                "tags": [
                    "[Public] APIs",
                    "Bootcamps",
                    "BootcampApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bootcamps/{bootcampId}/workshop-invite/accept": {
            "post": {
                "operationId": "workshopInvite.accept",
                "tags": [
                    "[Public] APIs",
                    "Workshop Invites (Authenticated)",
                    "WorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Your workshop attendance was already confirmed.",
                                                        "Thank you! Your workshop attendance has been confirmed."
                                                    ]
                                                },
                                                "invite": {
                                                    "type": "string"
                                                },
                                                "confirmed": {
                                                    "type": "boolean"
                                                },
                                                "already_confirmed": {
                                                    "type": "boolean"
                                                },
                                                "bootcamp_id": {
                                                    "type": "integer"
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "invite",
                                                "confirmed",
                                                "already_confirmed",
                                                "bootcamp_id",
                                                "signup_count"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/bootcamps/{id}": {
            "put": {
                "operationId": "admin.bootcamp.adminBootcamp.update_0",
                "description": "Updates bootcamp information.",
                "summary": "Update bootcamp",
                "tags": [
                    "[Public] APIs",
                    "AdminBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID\n\nPUT supports partial update; all fields below are optional.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp updated successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.bootcamp.adminBootcamp.destroy_1",
                "description": "Removes a bootcamp owned by the authenticated user.",
                "summary": "Delete bootcamp",
                "tags": [
                    "[Public] APIs",
                    "AdminBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "bootcampApi.show",
                "description": "Includes modules, each module's live classes, and resources.",
                "summary": "Get full details for a single published bootcamp",
                "tags": [
                    "[Public] APIs",
                    "Bootcamps",
                    "BootcampApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bootcamps/{id}/access": {
            "get": {
                "operationId": "eventLiveAccess.bootcampAccess",
                "tags": [
                    "[Public] APIs",
                    "EventLiveAccess"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "is_enrolled": {
                                            "type": "boolean"
                                        },
                                        "bootcamp_id": {
                                            "type": "integer"
                                        },
                                        "liveclass_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "platform_class": {
                                            "type": "object",
                                            "properties": {
                                                "is_enrolled": {
                                                    "type": "boolean"
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "booking_status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "booked",
                                                        "not_booked"
                                                    ]
                                                },
                                                "source_type": {
                                                    "type": "string"
                                                },
                                                "is_included": {
                                                    "type": "boolean"
                                                },
                                                "schedule": {
                                                    "type": "object",
                                                    "properties": {
                                                        "starts_at": {
                                                            "type": "string"
                                                        },
                                                        "ends_at": {
                                                            "type": "string"
                                                        },
                                                        "join_opens_at": {
                                                            "type": "string"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "starts_at",
                                                        "ends_at",
                                                        "join_opens_at",
                                                        "timezone"
                                                    ]
                                                },
                                                "join_opens_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "starts_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "ends_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "join_endpoint": {
                                                    "type": "string"
                                                },
                                                "signature_endpoint": {
                                                    "type": "string"
                                                },
                                                "provider": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "is_enrolled",
                                                "can_join",
                                                "booking_status",
                                                "source_type",
                                                "is_included",
                                                "schedule",
                                                "join_opens_at",
                                                "starts_at",
                                                "ends_at",
                                                "join_endpoint",
                                                "signature_endpoint",
                                                "provider"
                                            ]
                                        },
                                        "module_sessions": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "workshop_invite": {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string"
                                                },
                                                "invite_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "invited_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "confirmed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "invite_id",
                                                "invited_at",
                                                "confirmed_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "is_enrolled",
                                        "bootcamp_id",
                                        "liveclass_id",
                                        "platform_class",
                                        "module_sessions",
                                        "workshop_invite"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/careers": {
            "get": {
                "operationId": "career.index",
                "summary": "List active career vacancies (paginated)",
                "tags": [
                    "[Public] APIs",
                    "Careers",
                    "Career"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Careers fetched successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "department_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "work_mode": {
                                                        "type": "string"
                                                    },
                                                    "vacancy_location_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "type": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "requirements": {
                                                        "type": "array",
                                                        "items": []
                                                    },
                                                    "salary_range": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "responsibilities": {
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": []
                                                    },
                                                    "is_active": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "display_location": {
                                                        "type": "string"
                                                    },
                                                    "vacancy_location": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "city": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "country": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "description": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "is_active": {
                                                                "type": "boolean"
                                                            },
                                                            "created_at": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "format": "date-time"
                                                            },
                                                            "updated_at": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "format": "date-time"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "slug",
                                                            "city",
                                                            "country",
                                                            "description",
                                                            "is_active",
                                                            "created_at",
                                                            "updated_at"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "department_id",
                                                    "location",
                                                    "work_mode",
                                                    "vacancy_location_id",
                                                    "type",
                                                    "status",
                                                    "title",
                                                    "description",
                                                    "requirements",
                                                    "salary_range",
                                                    "responsibilities",
                                                    "is_active",
                                                    "created_at",
                                                    "updated_at",
                                                    "display_location",
                                                    "vacancy_location"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/careers/{id}": {
            "get": {
                "operationId": "career.show",
                "summary": "Get details for a single active career vacancy",
                "tags": [
                    "[Public] APIs",
                    "Careers",
                    "Career"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Career fetched successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "department_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "work_mode": {
                                                    "type": "string"
                                                },
                                                "vacancy_location_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "requirements": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "salary_range": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "responsibilities": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": []
                                                },
                                                "is_active": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "display_location": {
                                                    "type": "string"
                                                },
                                                "vacancy_location": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "city": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "country": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "description": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "is_active": {
                                                            "type": "boolean"
                                                        },
                                                        "created_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        },
                                                        "updated_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug",
                                                        "city",
                                                        "country",
                                                        "description",
                                                        "is_active",
                                                        "created_at",
                                                        "updated_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "department_id",
                                                "location",
                                                "work_mode",
                                                "vacancy_location_id",
                                                "type",
                                                "status",
                                                "title",
                                                "description",
                                                "requirements",
                                                "salary_range",
                                                "responsibilities",
                                                "is_active",
                                                "created_at",
                                                "updated_at",
                                                "display_location",
                                                "vacancy_location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Career not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/cart": {
            "get": {
                "operationId": "student.commerce.cart.index_0",
                "description": "Returns all cart items (courses and ebooks) for the authenticated user,\nalong with individual pricing details and a combined total. Items whose\nunderlying course/ebook no longer exists are silently skipped.",
                "summary": "Get the authenticated user's cart contents",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.commerce.cart.clear_1",
                "description": "Deletes every CartItem record belonging to the authenticated user.",
                "summary": "Clear all items from the authenticated user's cart",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/cart/toggle": {
            "post": {
                "operationId": "student.commerce.cart.toggle_0",
                "description": "If the item is already in the cart it is removed (status: \"removed\");\notherwise it is added (status: \"added\"). Accepts either the structured\n`item_type` + `item_id` payload, or legacy `course_id` / `ebook_id`\nfields for backwards compatibility.",
                "summary": "Toggle a course or ebook in/out of the authenticated user's cart",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "item_type": {
                                        "type": "string"
                                    },
                                    "item_id": {
                                        "type": "string"
                                    },
                                    "course_id": {
                                        "type": "string"
                                    },
                                    "ebook_id": {
                                        "type": "string"
                                    },
                                    "bootcamp_id": {
                                        "type": "string"
                                    },
                                    "live_class_id": {
                                        "type": "string"
                                    },
                                    "tutor_schedule_id": {
                                        "type": "string"
                                    },
                                    "team_training_id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/cart_list": {
            "get": {
                "operationId": "student.commerce.cart.cartList_0",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/cart_tools": {
            "get": {
                "operationId": "student.commerce.cart.cartTools_0",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "course_selling_tax": {
                                            "type": "string"
                                        },
                                        "currency_position": {
                                            "type": "string"
                                        },
                                        "currency_symbol": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "Not Authorized Credential"
                                        }
                                    },
                                    "required": [
                                        "course_selling_tax",
                                        "currency_position",
                                        "currency_symbol",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/categories": {
            "get": {
                "operationId": "category.categories",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/categories/{id}/courses": {
            "get": {
                "operationId": "category.courses",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/category_details": {
            "get": {
                "operationId": "category.categoryDetails",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "prefixItems": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "sub_categories": {
                                                    "type": "string"
                                                },
                                                "courses": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "sub_categories",
                                                "courses"
                                            ]
                                        }
                                    ],
                                    "minItems": 1,
                                    "maxItems": 1,
                                    "additionalItems": false
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/category_subcategory_wise_course": {
            "get": {
                "operationId": "category.categorySubcategoryWiseCourse",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/category_wise_course": {
            "get": {
                "operationId": "category.categoryWiseCourse",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/checkout/credit-bundle": {
            "post": {
                "operationId": "stripeCheckout.createCreditBundleSession",
                "summary": "Monolith-compatible alias for credit bundle Stripe checkout",
                "tags": [
                    "[Public] APIs",
                    "StripeCheckout"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to create Stripe checkout session."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Credit bundle not available for Stripe checkout."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription plan not available for Stripe checkout."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "credit_bundle"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "credit_bundle_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "credit_bundle_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "subscription"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "subscription_plan_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "subscription_plan_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You already have an active subscription. Cancel it before starting another subscription provider."
                                        },
                                        "code": {
                                            "type": "string",
                                            "const": "active_subscription_conflict"
                                        },
                                        "attempted_provider": {
                                            "type": "string",
                                            "const": "stripe"
                                        },
                                        "active_provider": {
                                            "type": "string",
                                            "enum": [
                                                "unknown",
                                                "iap",
                                                "stripe"
                                            ]
                                        },
                                        "active_until": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "next_steps": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string",
                                                    "const": "Cancel your current subscription before switching provider."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "If your current provider is Apple or Google, cancel from the store subscription settings."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "After cancellation is effective, retry subscription checkout."
                                                }
                                            ],
                                            "minItems": 3,
                                            "maxItems": 3,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "code",
                                        "attempted_provider",
                                        "active_provider",
                                        "active_until",
                                        "next_steps"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/consultation/requests": {
            "post": {
                "operationId": "consultation.create",
                "description": "Guest fields (`guest_name`, `guest_email`) are required when not authenticated.\nAn authenticated scholar's id is captured automatically.",
                "summary": "Create a new consultation request (anonymous or authenticated)",
                "tags": [
                    "[Public] APIs",
                    "ConsultationRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "topic_category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "description": "Legacy single-ID \u2014 accepted for backward-compat when array is absent."
                                    },
                                    "topic_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "preferred_start": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "preferred_end": {
                                        "type": "integer"
                                    },
                                    "budget_credits": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "topic_category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "description": "Multi-select \u2014 preferred; must have 1\u20135 valid category IDs.",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1,
                                        "maxItems": 5
                                    }
                                },
                                "required": [
                                    "preferred_start",
                                    "preferred_end"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "request_id": {
                                            "type": "integer"
                                        },
                                        "token": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "no_experts": {
                                            "type": "boolean"
                                        },
                                        "experts_notified": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "expires_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "request_id",
                                        "token",
                                        "status",
                                        "no_experts",
                                        "experts_notified",
                                        "expires_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/consultation/requests/{token}/status": {
            "get": {
                "operationId": "consultation.pollStatus",
                "description": "Returns enough information for the wizard to show the \"matched\" state\nand prompt the guest to sign up.",
                "summary": "Poll the status of a consultation request using the guest token",
                "tags": [
                    "[Public] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "request_id": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "topic": {
                                            "type": "string"
                                        },
                                        "preferred_start": {
                                            "type": "string"
                                        },
                                        "preferred_end": {
                                            "type": "string"
                                        },
                                        "signup_required": {
                                            "type": "string"
                                        },
                                        "expert_name": {
                                            "type": "string"
                                        },
                                        "cost_credits": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "request_id",
                                        "status",
                                        "topic",
                                        "preferred_start",
                                        "preferred_end",
                                        "signup_required",
                                        "expert_name",
                                        "cost_credits"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/contact": {
            "post": {
                "operationId": "publicApi.support.feedback.store_0__post_v1_contact",
                "summary": "Submit feedback (public, no auth required)",
                "tags": [
                    "[Public] APIs",
                    "Feedback"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback submitted successfully."
                                        },
                                        "feedback": {
                                            "$ref": "#/components/schemas/Feedback"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/contact-us": {
            "post": {
                "operationId": "publicApi.support.feedback.store_0__post_v1_contact_us",
                "summary": "Submit feedback (public, no auth required)",
                "tags": [
                    "[Public] APIs",
                    "Feedback"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback submitted successfully."
                                        },
                                        "feedback": {
                                            "$ref": "#/components/schemas/Feedback"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/course-categories/flat": {
            "get": {
                "operationId": "public.courseCategories.flat",
                "summary": "List course categories as a flat collection",
                "tags": [
                    "[Public] APIs",
                    "CourseCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Category"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/course-categories/{id}": {
            "get": {
                "operationId": "public.courseCategories.show",
                "summary": "Show a single course category",
                "tags": [
                    "[Public] APIs",
                    "CourseCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/course_details_by_id": {
            "get": {
                "operationId": "courses.detailsById",
                "description": "Alternative endpoint that accepts course_id as a query parameter\ninstead of URL parameter.",
                "summary": "Get full details for a specific course by course_id parameter",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses": {
            "get": {
                "operationId": "courses.index",
                "description": "Returns active courses ordered by newest first.\nThis endpoint does not require authentication.",
                "summary": "Get a list of all active courses",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/featured": {
            "get": {
                "operationId": "courses.featured",
                "description": "Returns courses where `status = active` and `is_featured = 1`,\nordered by newest first, paginated at 10 per page.",
                "summary": "Get a paginated list of featured active courses",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses/{courseId}/lessons-completion": {
            "get": {
                "operationId": "student.courses.courseProgress.detailedProgress_0",
                "summary": "Get detailed per-section and per-lesson progress for a student course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses/{courseId}/live-classes": {
            "get": {
                "operationId": "student.liveClasses.liveClass.courseLiveClasses_0",
                "summary": "Get live classes attached to a specific course for the authenticated student",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Course access expired"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Not registered for this course"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses/{courseId}/reviews": {
            "get": {
                "operationId": "reviews.byCourse",
                "description": "Returns paginated course reviews for public viewing, ordered by\nmost recent first.",
                "summary": "Get reviews for a course",
                "tags": [
                    "[Public] APIs",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/{courseId}/sessions": {
            "get": {
                "operationId": "student.liveClasses.liveClass.courseLiveClasses_0__get_v1_courses_courseId_sessions",
                "summary": "Get live classes attached to a specific course for the authenticated student",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Course access expired"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Not registered for this course"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses/{courseId}/student-progress": {
            "get": {
                "operationId": "student.courses.courseProgress.progress_0",
                "summary": "Get progress summary for a student course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "course_id": {
                                            "type": "integer"
                                        },
                                        "total_lessons": {
                                            "type": "integer"
                                        },
                                        "completed_lessons": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "progress_percentage": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "last_accessed_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "course_id",
                                        "total_lessons",
                                        "completed_lessons",
                                        "progress_percentage",
                                        "last_accessed_at"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses/{course_id}/lessons": {
            "get": {
                "operationId": "lessons.byCourse",
                "description": "Returns lessons for the given course using section linkage.\nOptionally filter by `section_id`.",
                "summary": "Get lessons for a course",
                "tags": [
                    "[Public] APIs",
                    "Lessons"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/{course_id}/lessons/{lesson_id}": {
            "get": {
                "operationId": "lessons.show",
                "summary": "Get a single lesson within a course",
                "tags": [
                    "[Public] APIs",
                    "Lessons"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "lesson_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/{course_id}/sections": {
            "get": {
                "operationId": "sections.byCourse",
                "summary": "Get all sections for a course with their lessons",
                "tags": [
                    "[Public] APIs",
                    "Sections"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/{id}": {
            "get": {
                "operationId": "courses.show",
                "description": "Returns all course fields as an array. If the authenticated user has\na pending course request for this course (status = \"Requested\"),\n`isRequested` will be `true` in the response.\n\nAuthentication is optional; unauthenticated requests will have\n`isRequested` set to `false`.",
                "summary": "Get full details for a specific course by ID",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/courses/{id}/request-course": {
            "post": {
                "operationId": "student.courses.courseRequest.requestCourse_0",
                "description": "Creates a CourseRequest record with status \"Requested\". If the student\nalready has a pending request for the same course, a 200 is returned\nwithout creating a duplicate.",
                "summary": "Submit an access request for a specific course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/courses_by_search_string": {
            "get": {
                "operationId": "courses.search",
                "description": "Returns active courses matching the search string in title.",
                "summary": "Search courses by keyword",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/credits/iap-purchase": {
            "post": {
                "operationId": "student.billing.subscription.purchaseCreditBundleIap_0",
                "description": "Validates and records a credit bundle purchase made through Apple App Store\nor Google Play. Increments the user's credit balance by the bundle's credit\namount (or by the supplied `amount` override).",
                "summary": "Purchase a credit bundle via mobile in-app purchase",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "iap_product_id": {
                                        "type": "string"
                                    },
                                    "purchase_token": {
                                        "type": "string"
                                    },
                                    "platform": {
                                        "type": "string",
                                        "enum": [
                                            "ios",
                                            "android"
                                        ]
                                    },
                                    "amount": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "purchase_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "iap_product_id",
                                    "purchase_token",
                                    "platform"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/demo-requests": {
            "post": {
                "operationId": "demoRequest.store",
                "tags": [
                    "[Public] APIs",
                    "DemoRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "minLength": 2,
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": "string",
                                        "minLength": 5,
                                        "maxLength": 64
                                    },
                                    "university": {
                                        "type": "string",
                                        "minLength": 2,
                                        "maxLength": 255
                                    },
                                    "location": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    },
                                    "message": {
                                        "type": "string",
                                        "minLength": 10
                                    },
                                    "solution_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "solution_slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "solution_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "phone",
                                    "university",
                                    "location",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Demo request submitted successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/difficulty-levels": {
            "get": {
                "operationId": "public.difficultyLevels.index",
                "summary": "List all difficulty levels (for dropdowns)",
                "tags": [
                    "[Public] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/DifficultyLevel"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ebook-categories": {
            "get": {
                "operationId": "ebooks.categories",
                "description": "Returns active ebook categories for catalog filtering.",
                "summary": "List ebook categories",
                "tags": [
                    "[Public] APIs",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ebook-categories/{slug}": {
            "get": {
                "operationId": "ebooks.categories.show",
                "summary": "Get one ebook category by slug",
                "tags": [
                    "[Public] APIs",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ebook-categories/{slug}/ebooks": {
            "get": {
                "operationId": "ebooks.byCategory",
                "description": "Returns the same paginated response as the public ebook listing, but\nscoped to a single ebook category identified by slug.",
                "summary": "List public active ebooks for a specific ebook category slug",
                "tags": [
                    "[Public] APIs",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ebooks": {
            "get": {
                "operationId": "ebooks.index",
                "description": "Returns a paginated list of ebooks (status = 1) with author details\njoined. Supports filtering by category slug, search keyword, price type,\nand rating. Pagination is controlled via the `per_page` query parameter\n(1\u2013100, default 9).",
                "summary": "List public active ebooks with optional filtering",
                "tags": [
                    "[Public] APIs",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ebooks/release": {
            "post": {
                "operationId": "student.ebooks.ebook.releaseEbook_0__post_v1_ebooks_release",
                "description": "Removes an `ebook_gets` record, revoking the user's access to the\nebook.",
                "summary": "Release an ebook from the student's library",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_get_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "ebook_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/ebooks/{id}": {
            "get": {
                "operationId": "ebooks.show",
                "description": "Returns one ebook (status = 1) with author details.",
                "summary": "Get a single public active ebook by ID",
                "tags": [
                    "[Public] APIs",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/email/verify/{id}/{hash}": {
            "get": {
                "operationId": "verification.verify",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "hash",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid verification link."
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User not found."
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/faqs": {
            "get": {
                "operationId": "faqs.public",
                "summary": "List FAQs (public, no authentication required)",
                "tags": [
                    "[Public] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "faqs": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketFaq"
                                            }
                                        }
                                    },
                                    "required": [
                                        "faqs"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/feedback": {
            "post": {
                "operationId": "publicApi.support.feedback.store_0",
                "summary": "Submit feedback (public, no auth required)",
                "tags": [
                    "[Public] APIs",
                    "Feedback"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback submitted successfully."
                                        },
                                        "feedback": {
                                            "$ref": "#/components/schemas/Feedback"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/filter_course": {
            "get": {
                "operationId": "courses.filter",
                "description": "Returns filtered list of active courses based on multiple criteria.",
                "summary": "Filter courses by category, price, level, and language",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/forgot_password": {
            "post": {
                "operationId": "publicApi.auth.auth.forgotPassword_0",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send Reset Password Link. Please check the email and try again."
                                        },
                                        "success_page_url": {
                                            "type": "string"
                                        },
                                        "login_url": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "success_page_url",
                                        "login_url"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Reset Password Link sent successfully to your email."
                                                },
                                                "success_page_url": {
                                                    "type": "string"
                                                },
                                                "login_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "success_page_url",
                                                "login_url"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/free_course_enroll/{course_id}": {
            "get": {
                "operationId": "student.courses.enrollment.freeCourseEnroll_0",
                "description": "Creates an enrollment record for a free course with no expiry date\n(lifetime access).",
                "summary": "Enroll the student in a free course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/google-login": {
            "post": {
                "operationId": "publicApi.auth.googleLogin.login_0",
                "description": "Supports both legacy access-token flow and modern ID-token flow\n(Google Identity Services credential JWT).",
                "summary": "Authenticate a user via Google OAuth token",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "GoogleLogin"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "access_token": {
                                        "type": "string"
                                    },
                                    "id_token": {
                                        "type": "string"
                                    },
                                    "credential": {
                                        "type": "string"
                                    },
                                    "accessToken": {
                                        "type": "string"
                                    },
                                    "idToken": {
                                        "type": "string"
                                    },
                                    "token": {
                                        "type": "string"
                                    },
                                    "referral_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/health": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "Success"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "API Server is up and running \ud83d\ude80"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "[Public] APIs"
                ]
            }
        },
        "/v1/iap/link": {
            "post": {
                "operationId": "student.billing.iapLink.upsert_0",
                "description": "Creates stable, unique identifiers for Apple (appAccountToken as UUID)\nand Google (obfuscatedExternalAccountId) if they don't already exist.\nThese tokens are used to link app store purchases back to the user's\naccount. Safe to call multiple times \u2014 existing tokens are preserved.",
                "summary": "Generate or retrieve IAP account linking tokens for the authenticated user",
                "tags": [
                    "[Public] APIs",
                    "In-App Purchases",
                    "IapLink"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/iap/validate": {
            "post": {
                "operationId": "student.billing.inAppPurchase.validateReceipt_0",
                "description": "Submits the receipt to the `InAppPurchaseService` which validates it\nagainst Apple App Store or Google Play and activates the corresponding\nsubscription or entitlement for the authenticated user.",
                "summary": "Validate and process a mobile in-app purchase receipt",
                "tags": [
                    "[Public] APIs",
                    "In-App Purchases",
                    "InAppPurchase"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "platform": {
                                        "type": "string",
                                        "enum": [
                                            "apple",
                                            "google"
                                        ]
                                    },
                                    "receipt": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "platform",
                                    "receipt"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor-application/apply": {
            "post": {
                "operationId": "student.auth.becomeInstructor.apply_0__post_v1_instructor_application_apply",
                "description": "Only one pending application per user is allowed. The endpoint\naccepts either an uploaded file (`document_file`) or a pre-uploaded\npath/URL (`document`) for backward compatibility.",
                "summary": "Submit an instructor application",
                "tags": [
                    "[Public] APIs",
                    "Instructor Application",
                    "BecomeInstructor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phone": {
                                        "type": "string",
                                        "maxLength": 30
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 2000
                                    },
                                    "document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "document_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                },
                                "required": [
                                    "phone",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor-application/status": {
            "get": {
                "operationId": "student.auth.becomeInstructor.status_0__get_v1_instructor_application_status",
                "description": "Returns the application if one exists, or null.",
                "summary": "Get the current user's application status",
                "tags": [
                    "[Public] APIs",
                    "Instructor Application",
                    "BecomeInstructor"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "has_application": {
                                            "type": "boolean"
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Application"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "has_application",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructors": {
            "get": {
                "operationId": "admin.users.instructors_0",
                "tags": [
                    "[Public] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "instructor"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructors/top": {
            "get": {
                "operationId": "tutors.top",
                "summary": "Return the top 10 instructors ranked by average review rating",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/languages": {
            "get": {
                "operationId": "courses.languages",
                "description": "Returns all unique languages used in available courses.",
                "summary": "Get list of available course languages",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/live-classes": {
            "get": {
                "operationId": "liveClass.index",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "scope": {
                                            "type": "string",
                                            "const": "upcoming"
                                        },
                                        "pricing": {
                                            "type": "string",
                                            "const": "all"
                                        },
                                        "server_time": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "required": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "required"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": "integer",
                                                        "const": 1
                                                    },
                                                    "credit_weight": {
                                                        "type": "integer"
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "level": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "language": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "category_id": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "short_description": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "level",
                                                            "language",
                                                            "category_id",
                                                            "short_description",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "requires_enrollment": {
                                                        "type": "boolean"
                                                    },
                                                    "is_enrolled": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "booked",
                                                            "not_booked"
                                                        ]
                                                    },
                                                    "is_booked": {
                                                        "type": "boolean"
                                                    },
                                                    "is_tutor_session": {
                                                        "type": "string"
                                                    },
                                                    "tutor_booking_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "can_book": {
                                                        "type": "boolean"
                                                    },
                                                    "can_cancel": {
                                                        "type": "boolean"
                                                    },
                                                    "can_join": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_closes_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "cancel_cutoff_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "join_allowed_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "meeting": {
                                                        "type": "object",
                                                        "properties": {
                                                            "provider": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "has_start_url": {
                                                                "type": "boolean"
                                                            },
                                                            "has_join_url": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "provider",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "has_start_url",
                                                            "has_join_url"
                                                        ]
                                                    },
                                                    "join": {
                                                        "type": "object",
                                                        "properties": {
                                                            "zoom_sdk": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "join_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "zoom_sdk",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "join_url"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "class_date_and_time",
                                                    "start_at",
                                                    "end_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "course",
                                                    "instructor",
                                                    "requires_enrollment",
                                                    "is_enrolled",
                                                    "booking_status",
                                                    "is_booked",
                                                    "is_tutor_session",
                                                    "tutor_booking_id",
                                                    "can_book",
                                                    "can_cancel",
                                                    "can_join",
                                                    "booking_closes_at",
                                                    "cancel_cutoff_at",
                                                    "join_allowed_at",
                                                    "meeting",
                                                    "join"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "scope",
                                        "pricing",
                                        "server_time",
                                        "timezone",
                                        "subscription",
                                        "items",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/course/{courseId}": {
            "get": {
                "operationId": "student.liveClasses.liveClass.courseLiveClasses_0__get_v1_live_classes_course_courseId",
                "summary": "Get live classes attached to a specific course for the authenticated student",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Course access expired"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Not registered for this course"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/free": {
            "get": {
                "operationId": "liveClass.free",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "scope": {
                                            "type": "string",
                                            "const": "upcoming"
                                        },
                                        "pricing": {
                                            "type": "string",
                                            "const": "all"
                                        },
                                        "server_time": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "required": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "required"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": "integer",
                                                        "const": 1
                                                    },
                                                    "credit_weight": {
                                                        "type": "integer"
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "level": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "language": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "category_id": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "short_description": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "level",
                                                            "language",
                                                            "category_id",
                                                            "short_description",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "requires_enrollment": {
                                                        "type": "boolean"
                                                    },
                                                    "is_enrolled": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "booked",
                                                            "not_booked"
                                                        ]
                                                    },
                                                    "is_booked": {
                                                        "type": "boolean"
                                                    },
                                                    "is_tutor_session": {
                                                        "type": "string"
                                                    },
                                                    "tutor_booking_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "can_book": {
                                                        "type": "boolean"
                                                    },
                                                    "can_cancel": {
                                                        "type": "boolean"
                                                    },
                                                    "can_join": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_closes_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "cancel_cutoff_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "join_allowed_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "meeting": {
                                                        "type": "object",
                                                        "properties": {
                                                            "provider": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "has_start_url": {
                                                                "type": "boolean"
                                                            },
                                                            "has_join_url": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "provider",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "has_start_url",
                                                            "has_join_url"
                                                        ]
                                                    },
                                                    "join": {
                                                        "type": "object",
                                                        "properties": {
                                                            "zoom_sdk": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "join_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "zoom_sdk",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "join_url"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "class_date_and_time",
                                                    "start_at",
                                                    "end_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "course",
                                                    "instructor",
                                                    "requires_enrollment",
                                                    "is_enrolled",
                                                    "booking_status",
                                                    "is_booked",
                                                    "is_tutor_session",
                                                    "tutor_booking_id",
                                                    "can_book",
                                                    "can_cancel",
                                                    "can_join",
                                                    "booking_closes_at",
                                                    "cancel_cutoff_at",
                                                    "join_allowed_at",
                                                    "meeting",
                                                    "join"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "scope",
                                        "pricing",
                                        "server_time",
                                        "timezone",
                                        "subscription",
                                        "items",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/paid": {
            "get": {
                "operationId": "liveClass.paid",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "scope": {
                                            "type": "string",
                                            "const": "upcoming"
                                        },
                                        "pricing": {
                                            "type": "string",
                                            "const": "all"
                                        },
                                        "server_time": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "required": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "required"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": "integer",
                                                        "const": 1
                                                    },
                                                    "credit_weight": {
                                                        "type": "integer"
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "level": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "language": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "category_id": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "short_description": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "level",
                                                            "language",
                                                            "category_id",
                                                            "short_description",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "requires_enrollment": {
                                                        "type": "boolean"
                                                    },
                                                    "is_enrolled": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "booked",
                                                            "not_booked"
                                                        ]
                                                    },
                                                    "is_booked": {
                                                        "type": "boolean"
                                                    },
                                                    "is_tutor_session": {
                                                        "type": "string"
                                                    },
                                                    "tutor_booking_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "can_book": {
                                                        "type": "boolean"
                                                    },
                                                    "can_cancel": {
                                                        "type": "boolean"
                                                    },
                                                    "can_join": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_closes_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "cancel_cutoff_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "join_allowed_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "meeting": {
                                                        "type": "object",
                                                        "properties": {
                                                            "provider": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "has_start_url": {
                                                                "type": "boolean"
                                                            },
                                                            "has_join_url": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "provider",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "has_start_url",
                                                            "has_join_url"
                                                        ]
                                                    },
                                                    "join": {
                                                        "type": "object",
                                                        "properties": {
                                                            "zoom_sdk": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "join_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "zoom_sdk",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "join_url"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "class_date_and_time",
                                                    "start_at",
                                                    "end_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "course",
                                                    "instructor",
                                                    "requires_enrollment",
                                                    "is_enrolled",
                                                    "booking_status",
                                                    "is_booked",
                                                    "is_tutor_session",
                                                    "tutor_booking_id",
                                                    "can_book",
                                                    "can_cancel",
                                                    "can_join",
                                                    "booking_closes_at",
                                                    "cancel_cutoff_at",
                                                    "join_allowed_at",
                                                    "meeting",
                                                    "join"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "scope",
                                        "pricing",
                                        "server_time",
                                        "timezone",
                                        "subscription",
                                        "items",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/public/upcoming": {
            "get": {
                "operationId": "liveClass.publicUpcoming",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "scope": {
                                            "type": "string",
                                            "const": "upcoming"
                                        },
                                        "is_public": {
                                            "type": "boolean"
                                        },
                                        "server_time": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": "integer",
                                                        "const": 1
                                                    },
                                                    "credit_weight": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "class_timezone": {
                                                        "type": "string"
                                                    },
                                                    "timezone": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": "string"
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "thumbnail"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "photo"
                                                        ]
                                                    },
                                                    "signup_count": {
                                                        "type": "integer"
                                                    },
                                                    "bookings_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_seats": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "seats_available": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_full": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "class_date_and_time",
                                                    "class_timezone",
                                                    "timezone",
                                                    "start_at",
                                                    "end_at",
                                                    "course",
                                                    "instructor",
                                                    "signup_count",
                                                    "bookings_count",
                                                    "total_seats",
                                                    "seats_available",
                                                    "is_full"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "scope",
                                        "is_public",
                                        "server_time",
                                        "timezone",
                                        "items",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/live-classes/public/{id}": {
            "get": {
                "operationId": "liveClass.publicShow",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "course_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "user_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "class_topic": {
                                            "type": "string"
                                        },
                                        "note": {
                                            "type": "string"
                                        },
                                        "thumbnail": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "thumbnail_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "provider": {
                                            "type": "string"
                                        },
                                        "duration_hours": {
                                            "type": "integer",
                                            "const": 1
                                        },
                                        "credit_weight": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "is_free": {
                                            "type": "boolean"
                                        },
                                        "class_date_and_time": {
                                            "type": "string"
                                        },
                                        "class_timezone": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "start_at": {
                                            "type": "string"
                                        },
                                        "end_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "course": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "is_paid": {
                                                    "type": "integer"
                                                },
                                                "price": {
                                                    "type": [
                                                        "number",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "slug",
                                                "is_paid",
                                                "price",
                                                "thumbnail"
                                            ]
                                        },
                                        "instructor": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "photo"
                                            ]
                                        },
                                        "signup_count": {
                                            "type": "integer"
                                        },
                                        "bookings_count": {
                                            "type": "integer"
                                        },
                                        "total_seats": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "seats_available": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "is_full": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "course_id",
                                        "user_id",
                                        "class_topic",
                                        "note",
                                        "thumbnail",
                                        "thumbnail_url",
                                        "provider",
                                        "duration_hours",
                                        "credit_weight",
                                        "is_free",
                                        "class_date_and_time",
                                        "class_timezone",
                                        "timezone",
                                        "start_at",
                                        "end_at",
                                        "course",
                                        "instructor",
                                        "signup_count",
                                        "bookings_count",
                                        "total_seats",
                                        "seats_available",
                                        "is_full"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/live-classes/upcoming": {
            "get": {
                "operationId": "liveClass.upcoming",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "scope": {
                                            "type": "string",
                                            "const": "upcoming"
                                        },
                                        "pricing": {
                                            "type": "string",
                                            "const": "all"
                                        },
                                        "server_time": {
                                            "type": "string"
                                        },
                                        "timezone": {
                                            "type": "string"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "required": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "required"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": "integer",
                                                        "const": 1
                                                    },
                                                    "credit_weight": {
                                                        "type": "integer"
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "level": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "language": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "category_id": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "short_description": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "level",
                                                            "language",
                                                            "category_id",
                                                            "short_description",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "requires_enrollment": {
                                                        "type": "boolean"
                                                    },
                                                    "is_enrolled": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "booked",
                                                            "not_booked"
                                                        ]
                                                    },
                                                    "is_booked": {
                                                        "type": "boolean"
                                                    },
                                                    "is_tutor_session": {
                                                        "type": "string"
                                                    },
                                                    "tutor_booking_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "can_book": {
                                                        "type": "boolean"
                                                    },
                                                    "can_cancel": {
                                                        "type": "boolean"
                                                    },
                                                    "can_join": {
                                                        "type": "boolean"
                                                    },
                                                    "booking_closes_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "cancel_cutoff_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "join_allowed_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "meeting": {
                                                        "type": "object",
                                                        "properties": {
                                                            "provider": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "has_start_url": {
                                                                "type": "boolean"
                                                            },
                                                            "has_join_url": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "provider",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "has_start_url",
                                                            "has_join_url"
                                                        ]
                                                    },
                                                    "join": {
                                                        "type": "object",
                                                        "properties": {
                                                            "zoom_sdk": {
                                                                "type": "string"
                                                            },
                                                            "meeting_id": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "meeting_password": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "join_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "zoom_sdk",
                                                            "meeting_id",
                                                            "meeting_password",
                                                            "join_url"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "class_date_and_time",
                                                    "start_at",
                                                    "end_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "course",
                                                    "instructor",
                                                    "requires_enrollment",
                                                    "is_enrolled",
                                                    "booking_status",
                                                    "is_booked",
                                                    "is_tutor_session",
                                                    "tutor_booking_id",
                                                    "can_book",
                                                    "can_cancel",
                                                    "can_join",
                                                    "booking_closes_at",
                                                    "cancel_cutoff_at",
                                                    "join_allowed_at",
                                                    "meeting",
                                                    "join"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "scope",
                                        "pricing",
                                        "server_time",
                                        "timezone",
                                        "subscription",
                                        "items",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/{id}/access": {
            "get": {
                "operationId": "eventLiveAccess.liveClassAccess",
                "tags": [
                    "[Public] APIs",
                    "EventLiveAccess"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "is_enrolled": {
                                            "type": "boolean"
                                        },
                                        "can_join": {
                                            "type": "string"
                                        },
                                        "booking_status": {
                                            "type": "string",
                                            "enum": [
                                                "booked",
                                                "not_booked"
                                            ]
                                        },
                                        "source_type": {
                                            "type": "string"
                                        },
                                        "is_included": {
                                            "type": "boolean"
                                        },
                                        "schedule": {
                                            "type": "object",
                                            "properties": {
                                                "starts_at": {
                                                    "type": "string"
                                                },
                                                "ends_at": {
                                                    "type": "string"
                                                },
                                                "join_opens_at": {
                                                    "type": "string"
                                                },
                                                "timezone": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "starts_at",
                                                "ends_at",
                                                "join_opens_at",
                                                "timezone"
                                            ]
                                        },
                                        "join_opens_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "starts_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "ends_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "join_endpoint": {
                                            "type": "string"
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        },
                                        "provider": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "is_enrolled",
                                        "can_join",
                                        "booking_status",
                                        "source_type",
                                        "is_included",
                                        "schedule",
                                        "join_opens_at",
                                        "starts_at",
                                        "ends_at",
                                        "join_endpoint",
                                        "signature_endpoint",
                                        "provider"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/{id}/book": {
            "post": {
                "operationId": "liveClassBooking.book",
                "tags": [
                    "[Public] APIs",
                    "LiveClassBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "booked"
                                        }
                                    },
                                    "required": [
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                },
                                                "error": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "error"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "const": "This live class is fully booked."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Booking window has closed for this live class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "402": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "code": {
                                            "type": "string",
                                            "const": "insufficient_credits"
                                        },
                                        "credit_balance": {
                                            "type": "integer"
                                        },
                                        "credit_required": {
                                            "type": "integer"
                                        },
                                        "credit_shortfall": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "code",
                                        "credit_balance",
                                        "credit_required",
                                        "credit_shortfall"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You already booked this live class."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking system not configured. Please contact support."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Active subscription required to book live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/{id}/cancel": {
            "post": {
                "operationId": "liveClassBooking.cancel",
                "tags": [
                    "[Public] APIs",
                    "LiveClassBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "cancelled"
                                        }
                                    },
                                    "required": [
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Unable to cancel booking at this time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Cancellation window has closed for this live class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This live class is included with your event enrollment and cannot be cancelled separately."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Active subscription required."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No active booking found for this live class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Live class not found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking system not configured. Please contact support."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/{id}/join": {
            "get": {
                "operationId": "liveClass.join",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": [],
                                        "meeting_password": [],
                                        "signature_endpoint": {
                                            "type": "string"
                                        },
                                        "join_url": []
                                    },
                                    "required": [
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "signature_endpoint",
                                        "join_url"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Join is only supported for Zoom live classes via this API."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This live class has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You can join shortly before the scheduled time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Active subscription required to join live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Please book this live class first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/live-classes/{id}/signature": {
            "get": {
                "operationId": "student.liveClasses.signature",
                "description": "The frontend should:\n1. Call GET /live-classes/{id}/join to validate access.\n2. Call this endpoint to obtain the signature.\n3. Initialise the Zoom Meeting SDK with the returned signature, sdkKey, meetingNumber and password.",
                "summary": "Return a short-lived Zoom SDK JWT so the frontend can join as a participant (role=0)",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "signature": {
                                            "type": "string"
                                        },
                                        "sdkKey": {
                                            "type": "string"
                                        },
                                        "meetingNumber": {
                                            "type": "string"
                                        },
                                        "password": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "signature",
                                        "sdkKey",
                                        "meetingNumber",
                                        "password"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Meeting details are not configured for this class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Zoom signature is only available for Zoom live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This live class has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You can join shortly before the scheduled time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Active subscription required to join live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Please book this live class first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access denied"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/login": {
            "post": {
                "operationId": "auth.login",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "email",
                                    "password"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User not found!"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Login successful"
                                        },
                                        "user": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/User"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "token": {
                                            "type": "string"
                                        },
                                        "access": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user",
                                        "token",
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "User not found!"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid credentials!"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/logout": {
            "post": {
                "operationId": "auth.logout",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Logged out successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/manage/blog-categories": {
            "post": {
                "operationId": "instructor.content.blog.storeCategory",
                "summary": "Create a blog category (admin only)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "subtitle": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created."
                                        },
                                        "category": {
                                            "$ref": "#/components/schemas/BlogCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/manage/blog-categories/{id}": {
            "put": {
                "operationId": "instructor.content.blog.updateCategory",
                "summary": "Update a blog category (admin only)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "subtitle": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated."
                                        },
                                        "category": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.content.blog.deleteCategory",
                "summary": "Delete a blog category (admin only)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/manage/blogs": {
            "get": {
                "operationId": "instructor.content.blog.manage_0__get_v1_manage_blogs",
                "summary": "List blog posts for management (admin sees all, instructor sees own)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Blog"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.content.blog.store_1__post_v1_manage_blogs",
                "description": "Admin posts are published immediately (status=1).\nInstructor posts are pending approval (status=0).",
                "summary": "Create a blog post (admin or instructor)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "is_popular": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "category_id",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post created."
                                        },
                                        "blog": {
                                            "$ref": "#/components/schemas/Blog"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "blog"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/manage/blogs/{id}": {
            "put": {
                "operationId": "instructor.content.blog.update_0__put_v1_manage_blogs_id",
                "summary": "Update a blog post",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "is_popular": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post updated."
                                        },
                                        "blog": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "blog"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.content.blog.destroy_1__delete_v1_manage_blogs_id",
                "summary": "Delete a blog post (admin or own post for instructor)",
                "tags": [
                    "[Public] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/me": {
            "get": {
                "operationId": "publicApi.auth.me.show_0__get_v1_me",
                "description": "Returns the user object plus:\n- email_verified: whether the email has been verified\n- referral_code: the user's shareable referral code (null if none yet)\n- wallet_credits: current unexpired credit balance\n- signup_bonus_credits: credits granted at signup (for display purposes)\n- email_verification_bonus_credits: credits available on verification",
                "summary": "Get the authenticated user with onboarding context",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "Me"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/me/subscription": {
            "get": {
                "operationId": "student.billing.subscriptionSnapshot.show_0",
                "tags": [
                    "[Public] APIs",
                    "SubscriptionSnapshot"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "platform": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "renews_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "plan": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "billing_period": {
                                                            "type": "string"
                                                        },
                                                        "monthly_credits": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "billing_period",
                                                        "monthly_credits"
                                                    ]
                                                },
                                                "monthly_credits": {
                                                    "type": "integer"
                                                },
                                                "billing_period": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "active",
                                                "platform",
                                                "product_id",
                                                "status",
                                                "renews_at",
                                                "plan",
                                                "monthly_credits",
                                                "billing_period"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "platform": {
                                                    "type": "null"
                                                },
                                                "product_id": {
                                                    "type": "null"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "const": "NONE"
                                                },
                                                "renews_at": {
                                                    "type": "null"
                                                },
                                                "plan": {
                                                    "type": "null"
                                                },
                                                "monthly_credits": {
                                                    "type": "integer"
                                                },
                                                "billing_period": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "active",
                                                "platform",
                                                "product_id",
                                                "status",
                                                "renews_at",
                                                "plan",
                                                "monthly_credits",
                                                "billing_period"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/me/wallet": {
            "get": {
                "operationId": "student.billing.wallet.show_0",
                "tags": [
                    "[Public] APIs",
                    "Wallet"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "balance": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "balance"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/me/wallet/ledger": {
            "get": {
                "operationId": "student.billing.wallet.ledger_0",
                "tags": [
                    "[Public] APIs",
                    "Wallet"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/me/workshop-invites": {
            "get": {
                "operationId": "workshopInvite.index",
                "tags": [
                    "[Public] APIs",
                    "Workshop Invites (Authenticated)",
                    "WorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcamp_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "pending",
                                "confirmed",
                                "cancelled"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/messages/search-users": {
            "get": {
                "operationId": "messages.searchUsers",
                "summary": "Search users to start a conversation with",
                "tags": [
                    "[Public] APIs",
                    "Messages",
                    "Message"
                ],
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "minLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "users": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        }
                                    },
                                    "required": [
                                        "users"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/messages/threads": {
            "get": {
                "operationId": "messages.threads",
                "description": "Returns threads ordered by most recent activity, with the other\nparticipant's details and the latest message preview.",
                "summary": "List the authenticated user's message threads",
                "tags": [
                    "[Public] APIs",
                    "Messages",
                    "Message"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "threads": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "code": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "other_user": {
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/components/schemas/User"
                                                            },
                                                            {
                                                                "type": "null"
                                                            }
                                                        ]
                                                    },
                                                    "latest_message": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "message": {
                                                                "type": "string"
                                                            },
                                                            "sender_id": {
                                                                "type": "integer"
                                                            },
                                                            "created_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "message",
                                                            "sender_id",
                                                            "created_at"
                                                        ]
                                                    },
                                                    "unread_count": {
                                                        "type": "integer"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "code",
                                                    "other_user",
                                                    "latest_message",
                                                    "unread_count",
                                                    "updated_at"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "threads",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "messages.thread.getOrCreate",
                "description": "If a thread already exists between the two users, returns it.\nOtherwise creates a new one.",
                "summary": "Get or create a thread with another user",
                "tags": [
                    "[Public] APIs",
                    "Messages",
                    "Message"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "user_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "thread": {
                                            "$ref": "#/components/schemas/MessageThread"
                                        }
                                    },
                                    "required": [
                                        "thread"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/messages/threads/{code}": {
            "get": {
                "operationId": "messages.show",
                "description": "Returns paginated messages for the given thread code.\nMarks unread messages as read for the authenticated user.",
                "summary": "Get messages in a thread",
                "tags": [
                    "[Public] APIs",
                    "Messages",
                    "Message"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "thread": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "code": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "other_user": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/components/schemas/User"
                                                        },
                                                        {
                                                            "type": "null"
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "code",
                                                "other_user"
                                            ]
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Message"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "thread",
                                        "messages",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/messages/threads/{code}/send": {
            "post": {
                "operationId": "messages.send",
                "summary": "Send a message in a thread",
                "tags": [
                    "[Public] APIs",
                    "Messages",
                    "Message"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Message sent."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Message"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/my-bookings": {
            "get": {
                "operationId": "student.tutor.tutorBooking.myBookings_0",
                "summary": "List student's bookings (upcoming + archived)",
                "tags": [
                    "[Public] APIs",
                    "TutorBooking"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "upcoming": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/TutorBooking"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        },
                                        "archived": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/TutorBooking"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "upcoming",
                                        "archived"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bookings/{id}/invoice": {
            "get": {
                "operationId": "student.tutor.tutorBooking.bookingInvoice_0__get_v1_my_bookings_id_invoice",
                "summary": "Get booking invoice",
                "tags": [
                    "[Public] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/TutorBooking"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bookings/{id}/join": {
            "get": {
                "operationId": "student.tutor.tutorBooking.joinClass_0__get_v1_my_bookings_id_join",
                "summary": "Get Zoom join credentials for a booked tutor session",
                "tags": [
                    "[Public] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking_id": {
                                            "type": "integer"
                                        },
                                        "booking": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "schedule_id": {
                                                    "type": "integer"
                                                },
                                                "live_class_id": {
                                                    "type": "integer"
                                                },
                                                "tutor_id": {
                                                    "type": "integer"
                                                },
                                                "student_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "integer"
                                                },
                                                "end_time": {
                                                    "type": "integer"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "instructor_joined_at": {
                                                    "type": "string"
                                                },
                                                "student_joined_at": {
                                                    "type": "string"
                                                },
                                                "delivered_at": {
                                                    "type": "string"
                                                },
                                                "student_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "auto_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "delivery_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancellation_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "tutor_name": {
                                                    "type": "string"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "subject_name": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "can_mark_delivered": {
                                                    "type": "string"
                                                },
                                                "can_confirm_delivery": {
                                                    "type": "string"
                                                },
                                                "can_review": {
                                                    "type": "string"
                                                },
                                                "can_cancel": {
                                                    "type": "string"
                                                },
                                                "timeline": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "confirmed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "in_progress"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "awaiting_confirmation"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "completed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "cancelled"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "schedule_id",
                                                "live_class_id",
                                                "tutor_id",
                                                "student_id",
                                                "invoice",
                                                "payment_method",
                                                "price",
                                                "status",
                                                "lifecycle_status",
                                                "start_time",
                                                "end_time",
                                                "confirmed_at",
                                                "instructor_joined_at",
                                                "student_joined_at",
                                                "delivered_at",
                                                "student_confirmed_at",
                                                "auto_confirmed_at",
                                                "delivery_notes",
                                                "cancellation_reason",
                                                "cancelled_at",
                                                "created_at",
                                                "tutor_name",
                                                "student_name",
                                                "subject_name",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "can_join",
                                                "can_mark_delivered",
                                                "can_confirm_delivery",
                                                "can_review",
                                                "can_cancel",
                                                "timeline"
                                            ]
                                        },
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": [],
                                        "meeting_password": [],
                                        "join_url": [],
                                        "live_class_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "booking_id",
                                        "booking",
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "join_url",
                                        "live_class_id",
                                        "signature_endpoint"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This session has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bootcamps": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.index_0__get_v1_my_bootcamps",
                "summary": "List the student's purchased bootcamps",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BootcampPurchase"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bootcamps/classes/{classId}/join": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.joinClass_0__get_v1_my_bootcamps_classes_classId_join",
                "description": "Verifies the student has purchased the bootcamp, checks that the\nclass hasn't ended, and returns Zoom join data.",
                "summary": "Get join credentials for a bootcamp live class",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "classId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "class": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "string"
                                                },
                                                "end_time": {
                                                    "type": "string"
                                                },
                                                "provider": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "zoom"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "start_time",
                                                "end_time",
                                                "provider"
                                            ]
                                        },
                                        "join": {
                                            "type": "object",
                                            "properties": {
                                                "zoom_sdk": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "join_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_password": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "zoom_sdk",
                                                "join_url",
                                                "meeting_id",
                                                "meeting_password"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "class",
                                        "join"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This class has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You can join shortly before the scheduled time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Class not found or not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Active subscription required to join live classes."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bootcamps/resources/{resourceId}": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.resource_0__get_v1_my_bootcamps_resources_resourceId",
                "description": "Verifies ownership and returns the resource file path.",
                "summary": "Get a downloadable bootcamp resource URL",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "resourceId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "resource": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "upload_type": {
                                                    "type": "string"
                                                },
                                                "file_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "upload_type",
                                                "file_url"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "resource"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Resource not found or not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Active subscription required to access this content."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bootcamps/{id}": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.show_0__get_v1_my_bootcamps_id",
                "summary": "Get details of a purchased bootcamp with modules, live classes, and resources",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my-bootcamps/{purchaseId}/invoice": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.invoice_0__get_v1_my_bootcamps_purchaseId_invoice",
                "summary": "Get purchase invoice for a bootcamp",
                "tags": [
                    "[Public] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "purchaseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/BootcampPurchase"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_course_requests": {
            "get": {
                "operationId": "student.courses.courseRequest.myCourseRequests_0",
                "description": "Returns all CourseRequest records for the current user, ordered by\nmost recently created first.",
                "summary": "Get all course access requests submitted by the authenticated student",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_courses": {
            "get": {
                "operationId": "student.courses.enrollment.myCourses_0",
                "description": "Returns paginated list of enrolled courses with progress information,\nexpiry dates, and lesson completion counts.",
                "summary": "Get all courses the student is enrolled in",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_courses/{course_id}/drop": {
            "delete": {
                "operationId": "student.courses.enrollment.dropCourse_0",
                "description": "Removes the enrollment record, revoking student access to the course.",
                "summary": "Unenroll the student from a course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_ebook_requests": {
            "get": {
                "operationId": "student.ebooks.ebookRequest.myEbookRequests_0",
                "description": "Returns ebook requests where the requesting user is the current\nauthenticated user and they don't already have access to the ebook.\nOrdered by newest first.",
                "summary": "Get the authenticated student's ebook requests",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "EbookRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_ebooks": {
            "get": {
                "operationId": "student.ebooks.ebook.myEbooks_0",
                "description": "Returns ebooks from the `ebook_gets` table that are linked to the\ncurrent user, ordered by newest first, paginated at 20 per page.",
                "summary": "Get the authenticated student's assigned ebooks (paginated)",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_ebooks/{id}": {
            "get": {
                "operationId": "student.ebooks.ebook.show",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "complete": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "title",
                                        "complete"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/my_wishlist": {
            "get": {
                "operationId": "student.commerce.wishlist.myWishlist_0",
                "tags": [
                    "[Public] APIs",
                    "Wishlist"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "wishlist_item_id": {
                                                        "type": "integer"
                                                    },
                                                    "item_type": {
                                                        "type": "string"
                                                    },
                                                    "item_id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "added_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "wishlist_item_id",
                                                    "item_type",
                                                    "item_id",
                                                    "title",
                                                    "added_at"
                                                ]
                                            }
                                        },
                                        "count": {
                                            "type": "integer"
                                        },
                                        "legacy_courses": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "string"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "items",
                                        "count",
                                        "legacy_courses"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Please login first"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.sendCampaign_1",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/campaigns": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_newsletter_campaigns",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/campaigns/{id}": {
            "get": {
                "operationId": "admin.newsletter.showCampaign_0",
                "summary": "Show a single queued marketing campaign",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/campaigns/{id}/cancel": {
            "post": {
                "operationId": "admin.newsletter.cancelCampaign_0",
                "summary": "Cancel a queued or processing marketing campaign",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign cancelled successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign can no longer be cancelled."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistory_0",
                "summary": "List sent marketing campaign history",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter history table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/preview": {
            "post": {
                "operationId": "admin.newsletter.previewCampaign_0",
                "summary": "Preview a marketing email campaign without sending it",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaign preview generated."
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": [],
                                                "template_key": [],
                                                "recipient_group": [],
                                                "recipient_count": {
                                                    "type": "integer"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "template_key",
                                                "recipient_group",
                                                "recipient_count",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/send": {
            "post": {
                "operationId": "admin.newsletter.sendCampaign_0",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/subscribe": {
            "post": {
                "operationId": "publicApi.content.newsletterSubscription.store_0",
                "summary": "Subscribe a public email address to the newsletter",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Please check your inbox and click the verification link to complete your subscription.",
                                                "Newsletter subscription created successfully."
                                            ]
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "email": {
                                                    "type": "string"
                                                },
                                                "already_subscribed": {
                                                    "type": "boolean"
                                                },
                                                "pending_verification": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "email",
                                                "already_subscribed",
                                                "pending_verification"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Email is already subscribed."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "email": {
                                                    "type": "string"
                                                },
                                                "already_subscribed": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "email",
                                                "already_subscribed"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/newsletter/subscribers": {
            "get": {
                "operationId": "admin.newsletter.indexSubscribers_0",
                "summary": "List newsletter subscribers",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/subscribers/bulk-upload": {
            "post": {
                "operationId": "admin.newsletter.bulkUploadSubscribers_0",
                "description": "CSV accepted formats:\n- one column: email\n- two columns: email,name\n- with or without header row",
                "summary": "Bulk upload newsletter subscribers from CSV file",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "file": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "file"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscribers bulk upload completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "inserted": {
                                                    "type": "integer"
                                                },
                                                "invalid": {
                                                    "type": "integer"
                                                },
                                                "duplicates_in_file": {
                                                    "type": "integer"
                                                },
                                                "already_subscribed": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "processed",
                                                "inserted",
                                                "invalid",
                                                "duplicates_in_file",
                                                "already_subscribed"
                                            ]
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/subscribers/template": {
            "get": {
                "operationId": "admin.newsletter.downloadSubscribersTemplate_0",
                "summary": "Download a CSV template for newsletter subscribers bulk upload",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/subscribers/{id}": {
            "get": {
                "operationId": "admin.newsletter.showSubscriber_0",
                "summary": "Get a single newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.newsletter.updateSubscriber_1",
                "summary": "Update a newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber updated successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.newsletter.destroySubscriber_2",
                "description": "Soft-deletes when `deleted_at` exists, otherwise hard-deletes.",
                "summary": "Delete a newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletter/unsubscribe": {
            "get": {
                "operationId": "publicApi.content.newsletterSubscription.unsubscribe_0",
                "description": "This endpoint is intended to be accessed from a signed email link.",
                "summary": "Unsubscribe a public email address from newsletter marketing emails",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "email",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/newsletter/verify": {
            "get": {
                "operationId": "publicApi.content.newsletterSubscription.verify_0",
                "summary": "Verify a newsletter subscription via the token emailed to the subscriber",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/newsletter/webhook": {
            "post": {
                "operationId": "admin.newsletter.handleWebhook_0",
                "description": "Expected payload shapes (both supported):\n\nPostmark:\n  { \"Type\": \"HardBounce\"|\"SoftBounce\"|\"SpamComplaint\", \"Email\": \"...\" }\n\nGeneric / SendGrid / Mailgun:\n  { \"event\": \"bounce\"|\"complaint\"|\"spamreport\", \"email\": \"...\" }\n  or\n  [{ \"event\": \"bounce\", \"email\": \"...\" }, ...]",
                "summary": "Receive bounce and complaint webhooks from the mail provider",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Bounce columns missing. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscriber table not ready."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/newsletters": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_newsletters",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.sendCampaign_1__post_v1_newsletters",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/campaigns": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_newsletters_campaigns",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/campaigns/{id}": {
            "get": {
                "operationId": "admin.newsletter.showCampaign_0__get_v1_newsletters_campaigns_id",
                "summary": "Show a single queued marketing campaign",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/campaigns/{id}/cancel": {
            "post": {
                "operationId": "admin.newsletter.cancelCampaign_0__post_v1_newsletters_campaigns_id_cancel",
                "summary": "Cancel a queued or processing marketing campaign",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign cancelled successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign can no longer be cancelled."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistory_0__get_v1_newsletters_history",
                "summary": "List sent marketing campaign history",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter history table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/preview": {
            "post": {
                "operationId": "admin.newsletter.previewCampaign_0__post_v1_newsletters_preview",
                "summary": "Preview a marketing email campaign without sending it",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaign preview generated."
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": [],
                                                "template_key": [],
                                                "recipient_group": [],
                                                "recipient_count": {
                                                    "type": "integer"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "template_key",
                                                "recipient_group",
                                                "recipient_count",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/send": {
            "post": {
                "operationId": "admin.newsletter.sendCampaign_0__post_v1_newsletters_send",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/subscribe": {
            "post": {
                "operationId": "publicApi.content.newsletterSubscription.store_0__post_v1_newsletters_subscribe",
                "summary": "Subscribe a public email address to the newsletter",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Please check your inbox and click the verification link to complete your subscription.",
                                                "Newsletter subscription created successfully."
                                            ]
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "email": {
                                                    "type": "string"
                                                },
                                                "already_subscribed": {
                                                    "type": "boolean"
                                                },
                                                "pending_verification": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "email",
                                                "already_subscribed",
                                                "pending_verification"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Email is already subscribed."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "email": {
                                                    "type": "string"
                                                },
                                                "already_subscribed": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "email",
                                                "already_subscribed"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/newsletters/subscribers": {
            "get": {
                "operationId": "admin.newsletter.indexSubscribers_0__get_v1_newsletters_subscribers",
                "summary": "List newsletter subscribers",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/subscribers/bulk-upload": {
            "post": {
                "operationId": "admin.newsletter.bulkUploadSubscribers_0__post_v1_newsletters_subscribers_bulk_upload",
                "description": "CSV accepted formats:\n- one column: email\n- two columns: email,name\n- with or without header row",
                "summary": "Bulk upload newsletter subscribers from CSV file",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "file": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "file"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscribers bulk upload completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "inserted": {
                                                    "type": "integer"
                                                },
                                                "invalid": {
                                                    "type": "integer"
                                                },
                                                "duplicates_in_file": {
                                                    "type": "integer"
                                                },
                                                "already_subscribed": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "processed",
                                                "inserted",
                                                "invalid",
                                                "duplicates_in_file",
                                                "already_subscribed"
                                            ]
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/subscribers/template": {
            "get": {
                "operationId": "admin.newsletter.downloadSubscribersTemplate_0__get_v1_newsletters_subscribers_template",
                "summary": "Download a CSV template for newsletter subscribers bulk upload",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/subscribers/{id}": {
            "get": {
                "operationId": "admin.newsletter.showSubscriber_0__get_v1_newsletters_subscribers_id",
                "summary": "Get a single newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.newsletter.updateSubscriber_1__put_v1_newsletters_subscribers_id",
                "summary": "Update a newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber updated successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.newsletter.destroySubscriber_2__delete_v1_newsletters_subscribers_id",
                "description": "Soft-deletes when `deleted_at` exists, otherwise hard-deletes.",
                "summary": "Delete a newsletter subscriber",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/unsubscribe": {
            "get": {
                "operationId": "publicApi.content.newsletterSubscription.unsubscribe_0__get_v1_newsletters_unsubscribe",
                "description": "This endpoint is intended to be accessed from a signed email link.",
                "summary": "Unsubscribe a public email address from newsletter marketing emails",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "email",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/newsletters/users": {
            "get": {
                "operationId": "admin.newsletter.getUserApi_0",
                "description": "Performs a LIKE search on the `users.name` column and returns a\nformatted array suitable for a select2 / autocomplete widget, where\neach entry has an `id` (user ID) and a `text` (user name) key.",
                "summary": "Search users by name for newsletter recipient selection",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/newsletters/verify": {
            "get": {
                "operationId": "publicApi.content.newsletterSubscription.verify_0__get_v1_newsletters_verify",
                "summary": "Verify a newsletter subscription via the token emailed to the subscriber",
                "tags": [
                    "[Public] APIs",
                    "NewsletterSubscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/newsletters/webhook": {
            "post": {
                "operationId": "admin.newsletter.handleWebhook_0__post_v1_newsletters_webhook",
                "description": "Expected payload shapes (both supported):\n\nPostmark:\n  { \"Type\": \"HardBounce\"|\"SoftBounce\"|\"SpamComplaint\", \"Email\": \"...\" }\n\nGeneric / SendGrid / Mailgun:\n  { \"event\": \"bounce\"|\"complaint\"|\"spamreport\", \"email\": \"...\" }\n  or\n  [{ \"event\": \"bounce\", \"email\": \"...\" }, ...]",
                "summary": "Receive bounce and complaint webhooks from the mail provider",
                "tags": [
                    "[Public] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Bounce columns missing. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscriber table not ready."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/pay/proforma/{token}": {
            "get": {
                "operationId": "proforma.payViaToken",
                "tags": [
                    "[Public] APIs",
                    "Proforma"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "invoice_number": {
                                                    "type": "string"
                                                },
                                                "total": {
                                                    "type": "string"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "line_items": {
                                                    "type": "string"
                                                },
                                                "billing_name": {
                                                    "type": "string"
                                                },
                                                "due_date": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "invoice_number",
                                                "total",
                                                "currency",
                                                "line_items",
                                                "billing_name",
                                                "due_date",
                                                "notes"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "This invoice has already been paid."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "410": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "This proforma invoice has expired."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid payment link."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/payment-notification/{identifier}": {
            "get": {
                "operationId": "webhooks.paymentNotification",
                "description": "Mirrors monolith behavior for gateway callbacks such as DOKU:\n- `POST /v1/payment-notification/doku`\n- `GET|POST /v1/payment-notification/{identifier}`",
                "summary": "Generic payment gateway notification endpoint (compatibility alias)",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "parameters": [
                    {
                        "name": "identifier",
                        "in": "path",
                        "required": true,
                        "description": "**Optional**",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "default": null
                        },
                        "x-optional": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/payment/{token}": {
            "get": {
                "operationId": "payment.payment",
                "tags": [
                    "[Public] APIs",
                    "Payment"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/public/instructor-vip-invite": {
            "get": {
                "operationId": "vipInstructorInvite.show",
                "summary": "Resolve a VIP invite token and return prefill data for the onboarding form",
                "tags": [
                    "[Public] APIs",
                    "VIP Instructor Invite (Public)",
                    "VipInstructorInvite"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "minLength": 64,
                            "maxLength": 64
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "valid": {
                                                    "type": "boolean"
                                                },
                                                "application": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "applicant_name": {
                                                            "type": "string"
                                                        },
                                                        "applicant_email": {
                                                            "type": "string"
                                                        },
                                                        "phone": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "onboarding_track": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "applicant_name",
                                                        "applicant_email",
                                                        "phone",
                                                        "status",
                                                        "onboarding_track"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "valid",
                                                "application"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/public/instructor-vip-invite/submit": {
            "post": {
                "operationId": "vipInstructorInvite.submit",
                "summary": "Submit the VIP instructor profile via invite token",
                "tags": [
                    "[Public] APIs",
                    "VIP Instructor Invite (Public)",
                    "VipInstructorInvite"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "token": {
                                        "type": "string",
                                        "minLength": 64,
                                        "maxLength": 64
                                    },
                                    "applicant_name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "description": {
                                        "type": "string",
                                        "minLength": 20,
                                        "maxLength": 5000
                                    },
                                    "document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "document_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "token",
                                    "applicant_name",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Thank you! Your profile has been submitted. We will activate your instructor account shortly."
                                                },
                                                "application": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "applicant_name": {
                                                            "type": "string"
                                                        },
                                                        "applicant_email": {
                                                            "type": "string"
                                                        },
                                                        "phone": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "onboarding_track": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "applicant_name",
                                                        "applicant_email",
                                                        "phone",
                                                        "status",
                                                        "onboarding_track"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "application"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/public/instructor-workshop-confirm": {
            "get": {
                "operationId": "instructorWorkshopConfirm.show",
                "tags": [
                    "[Public] APIs",
                    "Instructor Workshop Confirm (Public)",
                    "InstructorWorkshopConfirm"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "minLength": 64,
                            "maxLength": 64
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "valid": {
                                                    "type": "boolean"
                                                },
                                                "already_confirmed": {
                                                    "type": "boolean"
                                                },
                                                "workshop_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "confirmation_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "invite": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "bootcamp_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "user_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_by": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_at": {
                                                            "type": "string"
                                                        },
                                                        "last_invite_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmation_method": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "source": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "reminders_sent": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "array",
                                                                    "items": []
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    },
                                                                    "minItems": 0,
                                                                    "maxItems": 0,
                                                                    "additionalItems": false
                                                                }
                                                            ]
                                                        },
                                                        "last_reminder_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "cancelled",
                                                                "confirmed",
                                                                "invited"
                                                            ]
                                                        },
                                                        "pending_access_request": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "boolean"
                                                                }
                                                            ]
                                                        },
                                                        "application": {
                                                            "$ref": "#/components/schemas/Application"
                                                        },
                                                        "user": {
                                                            "$ref": "#/components/schemas/User"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "bootcamp_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "user_id",
                                                        "application_id",
                                                        "invited_by",
                                                        "invited_at",
                                                        "last_invite_sent_at",
                                                        "confirmed_at",
                                                        "confirmation_method",
                                                        "source",
                                                        "cancelled_at",
                                                        "reminders_sent",
                                                        "last_reminder_sent_at",
                                                        "status",
                                                        "pending_access_request",
                                                        "application",
                                                        "user"
                                                    ]
                                                },
                                                "application": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "applicant_name": {
                                                            "type": "string"
                                                        },
                                                        "applicant_email": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "onboarding_track": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "applicant_name",
                                                        "applicant_email",
                                                        "status",
                                                        "onboarding_track"
                                                    ]
                                                },
                                                "bootcamp": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "url": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "url"
                                                    ]
                                                },
                                                "workshop": {
                                                    "type": "object",
                                                    "properties": {
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "starts_at": {
                                                            "type": "string"
                                                        },
                                                        "timezone": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "UTC"
                                                                    ]
                                                                }
                                                            ]
                                                        },
                                                        "format": {
                                                            "type": "string",
                                                            "enum": [
                                                                "virtual",
                                                                "hybrid"
                                                            ]
                                                        },
                                                        "location_or_link": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "null"
                                                                },
                                                                {
                                                                    "type": "string"
                                                                }
                                                            ]
                                                        },
                                                        "notes": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "title",
                                                        "starts_at",
                                                        "timezone",
                                                        "format",
                                                        "location_or_link",
                                                        "notes"
                                                    ]
                                                },
                                                "context": {
                                                    "type": "string",
                                                    "enum": [
                                                        "instructor_onboarding",
                                                        "general"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "valid",
                                                "already_confirmed",
                                                "workshop_confirmed_at",
                                                "confirmation_method",
                                                "invite",
                                                "application",
                                                "bootcamp",
                                                "workshop",
                                                "context"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "post": {
                "operationId": "instructorWorkshopConfirm.confirm",
                "tags": [
                    "[Public] APIs",
                    "Instructor Workshop Confirm (Public)",
                    "InstructorWorkshopConfirm"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "token": {
                                        "type": "string",
                                        "minLength": 64,
                                        "maxLength": 64
                                    }
                                },
                                "required": [
                                    "token"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Your workshop attendance was already confirmed.",
                                                        "Thank you! Your workshop attendance has been confirmed."
                                                    ]
                                                },
                                                "confirmed": {
                                                    "type": "boolean"
                                                },
                                                "already_confirmed": {
                                                    "type": "boolean"
                                                },
                                                "bootcamp_id": {
                                                    "type": "integer"
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "invite": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "confirmed",
                                                "already_confirmed",
                                                "bootcamp_id",
                                                "signup_count",
                                                "invite"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/public/onboarding-incentives": {
            "get": {
                "operationId": "public.onboardingIncentives.show",
                "summary": "Get signup and email-verification bonus display values",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "OnboardingIncentives"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/purchase-history": {
            "get": {
                "operationId": "student.billing.purchaseHistory.index_0__get_v1_purchase_history",
                "description": "Returns paginated payment records with course details.",
                "summary": "List the authenticated student's purchase history",
                "tags": [
                    "[Public] APIs",
                    "Purchase History",
                    "PurchaseHistory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/purchase-history/{id}/invoice": {
            "get": {
                "operationId": "student.billing.purchaseHistory.invoice_0__get_v1_purchase_history_id_invoice",
                "summary": "Get a single purchase invoice",
                "tags": [
                    "[Public] APIs",
                    "Purchase History",
                    "PurchaseHistory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "": {
                                                    "type": "string"
                                                },
                                                "user_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "user_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "source_type": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "course"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                null,
                                                "user_name",
                                                "user_email",
                                                "source_type"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/purchase/bootcamp/{bootcamp_id}": {
            "get": {
                "operationId": "bootcamps.purchase",
                "description": "Similar to `payment()`, this authenticates the user via a web session\nand redirects to the `purchase.bootcamp` route with the given bootcamp ID.",
                "summary": "Redirect the authenticated user to the bootcamp purchase page",
                "tags": [
                    "[Public] APIs",
                    "Bootcamps",
                    "BootcampApi"
                ],
                "parameters": [
                    {
                        "name": "bootcamp_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 302
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/quiz-categories": {
            "get": {
                "operationId": "public.quizCategories.index",
                "summary": "List publicly visible quiz categories",
                "tags": [
                    "[Public] APIs",
                    "Public Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "slug": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "quiz_count": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "title",
                                                    "slug",
                                                    "thumbnail",
                                                    "quiz_count"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "per_page",
                                        "total",
                                        "last_page"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/quiz-categories/{id}": {
            "get": {
                "operationId": "public.quizCategories.show",
                "summary": "Show one public quiz category",
                "tags": [
                    "[Public] APIs",
                    "Public Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "quiz_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "slug",
                                                "thumbnail",
                                                "quiz_count"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/quiz/questions": {
            "get": {
                "operationId": "student.courses.quiz.questions_0__get_v1_quiz_questions",
                "description": "Returns the quiz lesson metadata, its questions (with options but\nwithout correct answers), the student's past submissions, and the\nparent course details.",
                "summary": "Load quiz questions for a given quiz (lesson)",
                "tags": [
                    "[Public] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/quiz/result": {
            "get": {
                "operationId": "student.courses.quiz.result_0__get_v1_quiz_result",
                "description": "Returns the quiz metadata, all questions with their correct answers,\nand the student's specific submission showing which answers were right\nor wrong.",
                "summary": "Load the result of a specific quiz submission",
                "tags": [
                    "[Public] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submission_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/quiz/{id}/submit": {
            "post": {
                "operationId": "student.courses.quiz.submit_0__post_v1_quiz_id_submit",
                "description": "Accepts a map of `{ question_id: answer }` pairs. Validates each answer\nagainst the stored correct answer for MCQ, fill-in-the-blank, and\ntrue/false question types. Records a `QuizSubmission` with the results.\n\nRespects the retake limit configured on the quiz lesson \u2014 submissions\nbeyond the allowed attempts are rejected.",
                "summary": "Submit quiz answers",
                "tags": [
                    "[Public] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answers": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "answers"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/quizzes": {
            "get": {
                "operationId": "public.quizzes.index",
                "summary": "Browse published quizzes publicly",
                "tags": [
                    "[Public] APIs",
                    "Public Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "current_page": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "per_page",
                                        "total",
                                        "last_page"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/quizzes/leaderboard": {
            "get": {
                "operationId": "public.quizzes.leaderboard",
                "summary": "List leaderboard rankings by period and optional category",
                "tags": [
                    "[Public] APIs",
                    "Public Quizzes",
                    "QuizLeaderboard"
                ],
                "parameters": [
                    {
                        "name": "period",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "daily",
                                "weekly",
                                "monthly",
                                "all_time"
                            ]
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "period": {
                                            "type": "string"
                                        },
                                        "category_id": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "quiz_id": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "rank": {
                                                        "type": "string"
                                                    },
                                                    "entry_type": {
                                                        "type": "string"
                                                    },
                                                    "user_id": {
                                                        "type": "string"
                                                    },
                                                    "applicant_id": {
                                                        "type": "string"
                                                    },
                                                    "user_name": {
                                                        "type": "string"
                                                    },
                                                    "user_thumbnail": {
                                                        "type": "string"
                                                    },
                                                    "total_points": {
                                                        "type": "string"
                                                    },
                                                    "average_score": {
                                                        "type": "string"
                                                    },
                                                    "points": {
                                                        "type": "string",
                                                        "description": "Compatibility aliases for clients expecting different field names."
                                                    },
                                                    "score": {
                                                        "type": "string"
                                                    },
                                                    "total_score": {
                                                        "type": "string"
                                                    },
                                                    "total_correct": {
                                                        "type": "string"
                                                    },
                                                    "average_completion_seconds": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "rank",
                                                    "entry_type",
                                                    "user_id",
                                                    "applicant_id",
                                                    "user_name",
                                                    "user_thumbnail",
                                                    "total_points",
                                                    "average_score",
                                                    "points",
                                                    "score",
                                                    "total_score",
                                                    "total_correct",
                                                    "average_completion_seconds"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "period",
                                        "category_id",
                                        "quiz_id",
                                        "data",
                                        "current_page",
                                        "per_page",
                                        "total",
                                        "last_page"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/quizzes/{id}": {
            "get": {
                "operationId": "public.quizzes.show",
                "summary": "Show one published quiz publicly",
                "tags": [
                    "[Public] APIs",
                    "Public Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/referrals/validate": {
            "get": {
                "operationId": "referralValidation.validateCode",
                "tags": [
                    "[Public] APIs",
                    "ReferralValidation"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "valid": {
                                                    "type": "boolean"
                                                },
                                                "referrer_name": {
                                                    "type": "string"
                                                },
                                                "program": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "instructor",
                                                        "student",
                                                        null
                                                    ]
                                                },
                                                "trigger_type": {
                                                    "type": "string"
                                                },
                                                "referee_credits": {
                                                    "type": "integer"
                                                },
                                                "message": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "valid",
                                                "referrer_name",
                                                "program",
                                                "trigger_type",
                                                "referee_credits",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "valid": {
                                                    "type": "boolean"
                                                },
                                                "program": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "instructor",
                                                        "student",
                                                        null
                                                    ]
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Referral program is not active."
                                                }
                                            },
                                            "required": [
                                                "valid",
                                                "program",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "valid": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid referral code."
                                                }
                                            },
                                            "required": [
                                                "valid",
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/release_ebook": {
            "post": {
                "operationId": "student.ebooks.ebook.releaseEbook_0",
                "description": "Removes an `ebook_gets` record, revoking the user's access to the\nebook.",
                "summary": "Release an ebook from the student's library",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_get_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "ebook_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/request_ebook": {
            "post": {
                "operationId": "student.ebooks.ebookRequest.requestEbook_0",
                "description": "Submits a request for an ebook. The request is created with status\n'Requested' and pending admin/instructor approval. Users cannot request\nthe same ebook twice if already pending, and cannot request ebooks they\nalready have access to.",
                "summary": "Create an ebook request",
                "tags": [
                    "[Public] APIs",
                    "Student Ebooks",
                    "EbookRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "ebook_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/reset_password": {
            "post": {
                "operationId": "publicApi.auth.auth.resetPassword_0",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "token": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string"
                                    },
                                    "password_confirmation": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "token",
                                    "email",
                                    "password",
                                    "password_confirmation"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Password reset successfully."
                                                },
                                                "success_page_url": {
                                                    "type": "string"
                                                },
                                                "login_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "success_page_url",
                                                "login_url"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/reviews": {
            "get": {
                "operationId": "student.courses.review.index_0__get_v1_reviews",
                "summary": "List reviews for a course",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter_star",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 5
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "newest",
                                "oldest",
                                "highest",
                                "lowest",
                                "most_helpful"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "reviews": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_name": {
                                                        "type": "string"
                                                    },
                                                    "user_photo": {
                                                        "type": "string"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "rating": {
                                                        "type": "integer"
                                                    },
                                                    "review": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_reply": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_replied_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "is_own": {
                                                        "type": "string"
                                                    },
                                                    "likes": {
                                                        "type": "integer"
                                                    },
                                                    "dislikes": {
                                                        "type": "integer"
                                                    },
                                                    "user_liked": {
                                                        "type": "boolean"
                                                    },
                                                    "user_disliked": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "user_name",
                                                    "user_photo",
                                                    "course_id",
                                                    "rating",
                                                    "review",
                                                    "instructor_reply",
                                                    "instructor_replied_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "is_own",
                                                    "likes",
                                                    "dislikes",
                                                    "user_liked",
                                                    "user_disliked"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        },
                                        "average_rating": {
                                            "anyOf": [
                                                {
                                                    "type": "number"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "total_reviews": {
                                            "type": "integer"
                                        },
                                        "star_counts": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                }
                                            ],
                                            "minItems": 5,
                                            "maxItems": 5,
                                            "additionalItems": false
                                        },
                                        "user_review": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Review"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "reviews",
                                        "pagination",
                                        "average_rating",
                                        "total_reviews",
                                        "star_counts",
                                        "user_review"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.courses.review.store_1__post_v1_reviews",
                "summary": "Create a course review",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreReviewRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/reviews/{id}": {
            "put": {
                "operationId": "student.courses.review.update_0__put_v1_reviews_id",
                "summary": "Update an existing course review",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateReviewRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.courses.review.destroy_1__delete_v1_reviews_id",
                "summary": "Delete a course review",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/reviews/{id}/dislike": {
            "post": {
                "operationId": "student.courses.review.dislike_0__post_v1_reviews_id_dislike",
                "summary": "Toggle dislike on a review",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "disliked"
                                        },
                                        "likes": {
                                            "type": "integer"
                                        },
                                        "dislikes": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "likes",
                                        "dislikes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/reviews/{id}/like": {
            "post": {
                "operationId": "student.courses.review.like_0__post_v1_reviews_id_like",
                "summary": "Toggle like on a review",
                "tags": [
                    "[Public] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "disliked"
                                        },
                                        "likes": {
                                            "type": "integer"
                                        },
                                        "dislikes": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "likes",
                                        "dislikes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/save_course_progress": {
            "get": {
                "operationId": "student.courses.courseProgress.saveCourseProgress_0",
                "description": "Updates the watch history for a lesson and returns updated course\ncompletion percentage for the authenticated student.",
                "summary": "Save course lesson progress for student",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/signup": {
            "post": {
                "operationId": "auth.signup",
                "tags": [
                    "[Public] APIs",
                    "Auth"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "User created successfully"
                                        },
                                        "signup_bonus_credits": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "email_verification": {
                                            "type": "object",
                                            "properties": {
                                                "sent": {
                                                    "type": "boolean"
                                                },
                                                "link": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "sent",
                                                "link"
                                            ]
                                        },
                                        "next_steps": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "action": {
                                                                "type": "string",
                                                                "const": "verify_email"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "action",
                                                            "label"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "action": {
                                                                "type": "string",
                                                                "const": "browse_courses"
                                                            },
                                                            "label": {
                                                                "type": "string",
                                                                "const": "Browse free courses"
                                                            }
                                                        },
                                                        "required": [
                                                            "action",
                                                            "label"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "action": {
                                                                "type": "string",
                                                                "const": "share_referral"
                                                            },
                                                            "label": {
                                                                "type": "string",
                                                                "const": "Share your referral link and earn more credits"
                                                            }
                                                        },
                                                        "required": [
                                                            "action",
                                                            "label"
                                                        ]
                                                    }
                                                ]
                                            }
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/User"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "signup_bonus_credits",
                                        "email_verification",
                                        "next_steps",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "errors": {
                                            "$ref": "#/components/schemas/MessageBag"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/social-links": {
            "get": {
                "operationId": "publicConfig.socialLinks",
                "description": "Returns social URLs sourced from the `frontend_settings` table.",
                "summary": "Get public social links",
                "tags": [
                    "[Public] APIs",
                    "Public Config",
                    "SocialLink"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/solutions": {
            "get": {
                "operationId": "publicApi.solutions.solution.index",
                "tags": [
                    "[Public] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "slug": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "details": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "logo": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "logo_path": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "logo_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "slug",
                                                    "description",
                                                    "details",
                                                    "logo",
                                                    "logo_path",
                                                    "logo_url",
                                                    "url",
                                                    "status",
                                                    "created_at"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/solutions/{slug}": {
            "get": {
                "operationId": "publicApi.solutions.solution.show",
                "tags": [
                    "[Public] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "details": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "details",
                                                "logo",
                                                "logo_path",
                                                "logo_url",
                                                "url",
                                                "status",
                                                "created_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/stats/counts": {
            "get": {
                "operationId": "stats.counts",
                "description": "Returns total counts of active courses, ebooks, students, instructors,\nlive classes, and bootcamps. No authentication required.",
                "summary": "Get platform-wide resource counts",
                "tags": [
                    "[Public] APIs",
                    "Platform Stats",
                    "PlatformStats"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/stripe/webhook": {
            "post": {
                "operationId": "publicApi.billing.webhook.stripe_0__post_v1_stripe_webhook",
                "description": "Verifies the `Stripe-Signature` header against the configured webhook\nsecret, then persists the event to `iap_webhook_events`,\n`iap_transactions`, and (for subscription events) `iap_subscriptions`.\n\nDispatches background jobs for key event types:\n- `invoice.paid` \u2192 `ProcessStripeInvoicePaidJob`\n- `checkout.session.completed` / `payment_intent.succeeded` \u2192 `ProcessStripeCreditBundleJob`\n\nTo correctly route purchases, include `user_id`, `product_id`, and\n`type` in Stripe metadata when creating checkout sessions or subscriptions.\nExample: `['user_id' => 123, 'product_id' => 'credits.bundle.4', 'type' => 'addon_credits']`",
                "summary": "Receive Stripe webhook events",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/student-progress/course/{courseId}": {
            "get": {
                "operationId": "student.courses.courseProgress.progress_0__get_v1_student_progress_course_courseId",
                "summary": "Get progress summary for a student course",
                "tags": [
                    "[Public] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "course_id": {
                                            "type": "integer"
                                        },
                                        "total_lessons": {
                                            "type": "integer"
                                        },
                                        "completed_lessons": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "progress_percentage": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "last_accessed_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "course_id",
                                        "total_lessons",
                                        "completed_lessons",
                                        "progress_percentage",
                                        "last_accessed_at"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/students": {
            "get": {
                "operationId": "admin.users.students_0",
                "tags": [
                    "[Public] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "student"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/students/discover": {
            "get": {
                "operationId": "studentDiscovery.index",
                "summary": "List discoverable students for authenticated users",
                "tags": [
                    "[Public] APIs",
                    "StudentDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "photo": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "headline": {
                                                        "type": "string"
                                                    },
                                                    "about": {
                                                        "type": "string"
                                                    },
                                                    "skills": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "learning_interests": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "location_label": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "country": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "biography": {
                                                        "type": "string"
                                                    },
                                                    "facebook": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "twitter": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "linkedin": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "website": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "photo",
                                                    "headline",
                                                    "about",
                                                    "skills",
                                                    "learning_interests",
                                                    "location_label",
                                                    "country",
                                                    "biography",
                                                    "facebook",
                                                    "twitter",
                                                    "linkedin",
                                                    "website"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/students/discover/{studentId}": {
            "get": {
                "operationId": "studentDiscovery.show",
                "summary": "Show a single discoverable student profile",
                "tags": [
                    "[Public] APIs",
                    "StudentDiscovery"
                ],
                "parameters": [
                    {
                        "name": "studentId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "headline": {
                                                    "type": "string"
                                                },
                                                "about": {
                                                    "type": "string"
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "learning_interests": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "location_label": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": "string"
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "photo",
                                                "headline",
                                                "about",
                                                "skills",
                                                "learning_interests",
                                                "location_label",
                                                "country",
                                                "biography",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "website"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Student not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/sub_categories/{id}": {
            "get": {
                "operationId": "category.subCategories",
                "tags": [
                    "[Public] APIs",
                    "Category"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "string"
                                        },
                                        {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/subscription/cancel": {
            "post": {
                "operationId": "student.billing.subscription.cancel_0",
                "description": "Marks the subscription to cancel when the current billing period ends.\nThe student retains access until `ends_at`. Only works for subscriptions\nwith a valid `stripe_subscription_id`.",
                "summary": "Schedule a Stripe subscription cancellation at the end of the billing period",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/cancel-immediately": {
            "post": {
                "operationId": "student.billing.subscription.cancelImmediately_0",
                "description": "Cancels the subscription at Stripe without waiting for the billing period\nto end. Access may be revoked immediately depending on platform behaviour.\nOnly works for subscriptions with a valid `stripe_subscription_id`.",
                "summary": "Immediately cancel the authenticated student's Stripe subscription",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/credits": {
            "get": {
                "operationId": "student.billing.subscription.credits_0",
                "description": "Returns a breakdown of the student's live-class credit balance including\ntotal, remaining usable, used, frozen, and the billing window dates,\ncomputed by the `SubscriptionCreditSummaryService`.",
                "summary": "Get the authenticated student's credit summary",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/iap": {
            "post": {
                "operationId": "student.billing.subscription.createIapSubscription_0",
                "description": "Looks up the matching SubscriptionPlan using the provided `iap_product_id`\n(matched against `stripe_price_id` or `iap_product_id` on the plan).\nCreates the subscription with status `active` and credit allocation from\nthe plan. Intended for post-receipt-validation subscription activation.",
                "summary": "Create a new subscription from a mobile in-app purchase (IAP)",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "iap_product_id": {
                                        "type": "string"
                                    },
                                    "starts_at": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "ends_at": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "iap_product_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/my_subscription": {
            "get": {
                "operationId": "student.billing.subscription.mySubscription_0",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "subscription": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "starts_at": {
                                                            "type": "string"
                                                        },
                                                        "ends_at": {
                                                            "type": "string"
                                                        },
                                                        "live_class_credits_total": {
                                                            "type": "integer"
                                                        },
                                                        "live_class_credits_remaining": {
                                                            "type": "integer"
                                                        },
                                                        "credit_balances": {
                                                            "type": "object",
                                                            "properties": {
                                                                "total": {
                                                                    "type": "integer"
                                                                },
                                                                "remaining": {
                                                                    "type": "integer"
                                                                },
                                                                "used": {
                                                                    "type": "integer"
                                                                },
                                                                "used_percent": {
                                                                    "type": "number"
                                                                },
                                                                "frozen": {
                                                                    "type": "integer"
                                                                },
                                                                "window": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ]
                                                                }
                                                            },
                                                            "required": [
                                                                "total",
                                                                "remaining",
                                                                "used",
                                                                "used_percent",
                                                                "frozen",
                                                                "window"
                                                            ]
                                                        },
                                                        "credit_summary": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "status",
                                                        "starts_at",
                                                        "ends_at",
                                                        "live_class_credits_total",
                                                        "live_class_credits_remaining",
                                                        "credit_balances",
                                                        "credit_summary"
                                                    ]
                                                },
                                                "approved_request": {
                                                    "type": "null"
                                                },
                                                "approved_plan": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "subscription",
                                                "approved_request",
                                                "approved_plan"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "subscription": {
                                                    "type": "null"
                                                },
                                                "approved_request": {
                                                    "type": "null"
                                                },
                                                "approved_plan": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "subscription",
                                                "approved_request",
                                                "approved_plan"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/plans": {
            "get": {
                "operationId": "student.billing.subscription.plans_0",
                "description": "Returns all active, recurring subscription plans that have a\n`stripe_price_id` configured, ordered by `sort` then `id`. Also includes\nthe student's current subscription state, credit balances, and a\n`current_plan_id` (the most recently purchased plan from Stripe credits).",
                "summary": "List active subscription plans available to the authenticated student",
                "tags": [
                    "[Public] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/subscription/stripe/checkout/{planId}": {
            "post": {
                "operationId": "stripeCheckout.createSubscriptionSession",
                "summary": "Monolith-compatible alias for subscription Stripe checkout",
                "tags": [
                    "[Public] APIs",
                    "StripeCheckout"
                ],
                "parameters": [
                    {
                        "name": "planId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to create Stripe checkout session."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Credit bundle not available for Stripe checkout."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription plan not available for Stripe checkout."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "credit_bundle"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "credit_bundle_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "credit_bundle_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "subscription"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "subscription_plan_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "subscription_plan_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You already have an active subscription. Cancel it before starting another subscription provider."
                                        },
                                        "code": {
                                            "type": "string",
                                            "const": "active_subscription_conflict"
                                        },
                                        "attempted_provider": {
                                            "type": "string",
                                            "const": "stripe"
                                        },
                                        "active_provider": {
                                            "type": "string",
                                            "enum": [
                                                "unknown",
                                                "iap",
                                                "stripe"
                                            ]
                                        },
                                        "active_until": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "next_steps": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string",
                                                    "const": "Cancel your current subscription before switching provider."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "If your current provider is Apple or Google, cancel from the store subscription settings."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "After cancellation is effective, retry subscription checkout."
                                                }
                                            ],
                                            "minItems": 3,
                                            "maxItems": 3,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "code",
                                        "attempted_provider",
                                        "active_provider",
                                        "active_until",
                                        "next_steps"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/support/lookups": {
            "get": {
                "operationId": "supportConfig.lookups",
                "summary": "Get all active ticket categories, priorities, and statuses for forms",
                "tags": [
                    "[Public] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketCategory"
                                            }
                                        },
                                        "priorities": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketPriority"
                                            }
                                        },
                                        "statuses": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketStatus"
                                            }
                                        },
                                        "faqs": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketFaq"
                                            }
                                        }
                                    },
                                    "required": [
                                        "categories",
                                        "priorities",
                                        "statuses",
                                        "faqs"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/team-training/my-packages": {
            "get": {
                "operationId": "teamTrainingPackage.myPackages",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamTrainingPackage"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/team-training/packages": {
            "get": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.index_0",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamTrainingPackage"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.store_1",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "course_privacy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "course_id": {
                                        "type": "integer"
                                    },
                                    "allocation": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "pricing_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "expiry_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "expiry_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "features": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "course_id",
                                    "allocation"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package created successfully"
                                        },
                                        "package": {
                                            "$ref": "#/components/schemas/TeamTrainingPackage"
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "package",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/team-training/packages/{id}": {
            "get": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.show_0",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "package": {
                                            "type": "string"
                                        },
                                        "reserved_members": {
                                            "type": "integer"
                                        },
                                        "purchase_count": {
                                            "type": "integer"
                                        },
                                        "signup_count": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "package",
                                        "reserved_members",
                                        "purchase_count",
                                        "signup_count"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.update_1",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "course_privacy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "course_id": {
                                        "type": "integer"
                                    },
                                    "allocation": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "pricing_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "expiry_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "expiry_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "features": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package updated successfully"
                                        },
                                        "package": {
                                            "type": "string"
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "package",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.destroy_2",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/team-training/packages/{id}/access": {
            "get": {
                "operationId": "eventLiveAccess.teamPackageAccess",
                "tags": [
                    "[Public] APIs",
                    "EventLiveAccess"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "is_enrolled": {
                                            "type": "string"
                                        },
                                        "is_purchaser": {
                                            "type": "boolean"
                                        },
                                        "is_member": {
                                            "type": "boolean"
                                        },
                                        "package_id": {
                                            "type": "integer"
                                        },
                                        "liveclass_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "platform_class": {
                                            "type": "object",
                                            "properties": {
                                                "is_enrolled": {
                                                    "type": "boolean"
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "booking_status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "booked",
                                                        "not_booked"
                                                    ]
                                                },
                                                "source_type": {
                                                    "type": "string"
                                                },
                                                "is_included": {
                                                    "type": "boolean"
                                                },
                                                "schedule": {
                                                    "type": "object",
                                                    "properties": {
                                                        "starts_at": {
                                                            "type": "string"
                                                        },
                                                        "ends_at": {
                                                            "type": "string"
                                                        },
                                                        "join_opens_at": {
                                                            "type": "string"
                                                        },
                                                        "timezone": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "starts_at",
                                                        "ends_at",
                                                        "join_opens_at",
                                                        "timezone"
                                                    ]
                                                },
                                                "join_opens_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "starts_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "ends_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "join_endpoint": {
                                                    "type": "string"
                                                },
                                                "signature_endpoint": {
                                                    "type": "string"
                                                },
                                                "provider": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "is_enrolled",
                                                "can_join",
                                                "booking_status",
                                                "source_type",
                                                "is_included",
                                                "schedule",
                                                "join_opens_at",
                                                "starts_at",
                                                "ends_at",
                                                "join_endpoint",
                                                "signature_endpoint",
                                                "provider"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "is_enrolled",
                                        "is_purchaser",
                                        "is_member",
                                        "package_id",
                                        "liveclass_id",
                                        "platform_class"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/team-training/packages/{id}/members": {
            "get": {
                "operationId": "teamTrainingPackage.members",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "package_id": {
                                            "type": "string"
                                        },
                                        "allocation": {
                                            "type": "integer"
                                        },
                                        "reserved_members": {
                                            "type": "integer"
                                        },
                                        "members": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamPackageMember"
                                            }
                                        }
                                    },
                                    "required": [
                                        "package_id",
                                        "allocation",
                                        "reserved_members",
                                        "members"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "teamTrainingPackage.addMember",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "member_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "member_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Member added successfully"
                                        },
                                        "member": {
                                            "$ref": "#/components/schemas/TeamPackageMember"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "member"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Member already added"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/team-training/packages/{id}/members/{memberId}": {
            "delete": {
                "operationId": "teamTrainingPackage.removeMember",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "memberId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Member removed successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Member not found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Team package not found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/team-training/packages/{id}/purchase": {
            "post": {
                "operationId": "teamTrainingPackage.purchase",
                "tags": [
                    "[Public] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package purchased successfully"
                                        },
                                        "purchase": {
                                            "type": "object",
                                            "properties": {
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "package_id": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "tax": {
                                                    "type": "integer"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "instructor_revenue": {
                                                    "type": "number"
                                                },
                                                "admin_revenue": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "invoice",
                                                "user_id",
                                                "package_id",
                                                "price",
                                                "tax",
                                                "payment_method",
                                                "status",
                                                "instructor_revenue",
                                                "admin_revenue"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "purchase"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Package already purchased"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You cannot purchase your own package"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/tickets": {
            "get": {
                "operationId": "student.support.ticket.index_0__get_v1_tickets",
                "description": "Students/instructors see their own tickets. Admins see all tickets,\noptionally filtered by status, priority, category, or search term.",
                "summary": "List tickets for the authenticated user",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ticket"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.support.ticket.store_1__post_v1_tickets",
                "description": "Creates the ticket and its initial message in one request.",
                "summary": "Create a new support ticket",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "message": {
                                        "type": "string"
                                    },
                                    "priority_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "subject",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket created."
                                        },
                                        "ticket": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ticket"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "ticket"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/tickets/{code}": {
            "get": {
                "operationId": "student.support.ticket.show_0__get_v1_tickets_code",
                "summary": "Get a single ticket with its full message thread",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "ticket": {
                                            "$ref": "#/components/schemas/Ticket"
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "message": {
                                                        "type": "string"
                                                    },
                                                    "sender_id": {
                                                        "type": "integer"
                                                    },
                                                    "receiver_id": {
                                                        "type": "integer"
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "message",
                                                    "sender_id",
                                                    "receiver_id",
                                                    "file",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "ticket",
                                        "messages"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "student.support.ticket.update_1__put_v1_tickets_code",
                "summary": "Update ticket status/priority (admin only)",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "priority_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket updated."
                                        },
                                        "ticket": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ticket"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "ticket"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.support.ticket.destroy_2__delete_v1_tickets_code",
                "summary": "Delete a ticket and its messages (admin only)",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/tickets/{code}/reply": {
            "post": {
                "operationId": "student.support.ticket.reply_0__post_v1_tickets_code_reply",
                "summary": "Reply to a ticket thread",
                "tags": [
                    "[Public] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "message": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply sent."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessage"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/toggle_cart_items": {
            "get": {
                "operationId": "cart.toggleCartItems",
                "tags": [
                    "[Public] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "added"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "removed"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Valid item type and ID required"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/toggle_wishlist_items": {
            "get": {
                "operationId": "student.commerce.wishlist.toggleWishlistItems_0",
                "tags": [
                    "[Public] APIs",
                    "Wishlist"
                ],
                "parameters": [
                    {
                        "name": "item_type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "item_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "ebook_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "bootcamp_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "live_class_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "tutor_schedule_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "team_training_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "removed"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "added"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Validation failed"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "item_type is invalid"
                                                        }
                                                    ],
                                                    "minItems": 1,
                                                    "maxItems": 1,
                                                    "additionalItems": false
                                                },
                                                "item_id": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "item_id is required"
                                                        }
                                                    ],
                                                    "minItems": 1,
                                                    "maxItems": 1,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "item_type",
                                                "item_id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Please login first"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/token": {
            "get": {
                "operationId": "student.billing.iapLink.upsert_0__get_v1_token",
                "description": "Creates stable, unique identifiers for Apple (appAccountToken as UUID)\nand Google (obfuscatedExternalAccountId) if they don't already exist.\nThese tokens are used to link app store purchases back to the user's\naccount. Safe to call multiple times \u2014 existing tokens are preserved.",
                "summary": "Generate or retrieve IAP account linking tokens for the authenticated user",
                "tags": [
                    "[Public] APIs",
                    "In-App Purchases",
                    "IapLink"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/top_bootcamps": {
            "get": {
                "operationId": "bootcamps.top",
                "description": "Returns all bootcamps (no status filter) using the `bootcamp_details()`\nhelper for formatting.",
                "summary": "Get all bootcamps ordered by newest first",
                "tags": [
                    "[Public] APIs",
                    "Bootcamps",
                    "BootcampApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/top_courses": {
            "get": {
                "operationId": "courses.top",
                "description": "Returns the 10 most recently created courses with active status.",
                "summary": "Get the top 10 newest active courses",
                "tags": [
                    "[Public] APIs",
                    "Courses"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutor-categories": {
            "get": {
                "operationId": "tutors.categories",
                "summary": "List tutor categories",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorCategory"
                                            }
                                        }
                                    },
                                    "required": [
                                        "categories"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutor-policy": {
            "get": {
                "operationId": "public.tutorPolicy.show",
                "summary": "Return cancellation cutoff hours so the UI can surface the policy before booking",
                "tags": [
                    "[Public] APIs",
                    "Tutoring",
                    "TutorPolicy"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutor-reviews": {
            "post": {
                "operationId": "student.tutor.tutorBooking.submitReview_0__post_v1_tutor_reviews",
                "summary": "Submit or update a tutor review",
                "tags": [
                    "[Public] APIs",
                    "TutorBooking"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tutor_id": {
                                        "type": "integer"
                                    },
                                    "booking_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "rating": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 5
                                    },
                                    "review": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "rating"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Review submitted."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/TutorReview"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/tutor-schedules": {
            "get": {
                "operationId": "tutors.schedules",
                "summary": "List available tutor schedules with filters",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorSchedule"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutor-subjects": {
            "get": {
                "operationId": "tutors.subjects",
                "summary": "List tutor subjects",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "subjects": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorSubject"
                                            }
                                        }
                                    },
                                    "required": [
                                        "subjects"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutors": {
            "get": {
                "operationId": "tutors.index",
                "summary": "List tutors (instructors with schedules)",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutors/{tutorId}": {
            "get": {
                "operationId": "tutors.show",
                "summary": "Get a single tutor by ID",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "parameters": [
                    {
                        "name": "tutorId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/tutors/{tutorId}/availability": {
            "get": {
                "operationId": "tutors.availability",
                "description": "Merges InstructorAvailability windows with existing open TutorSchedule rows.",
                "summary": "Get available slots for a tutor within a date range",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "parameters": [
                    {
                        "name": "tutorId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 15,
                            "maximum": 480
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/tutors/{tutorId}/reviews": {
            "get": {
                "operationId": "tutors.reviews",
                "summary": "Get reviews for a tutor",
                "tags": [
                    "[Public] APIs",
                    "TutorDiscovery"
                ],
                "parameters": [
                    {
                        "name": "tutorId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "reviews": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/TutorReview"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        },
                                        "average_rating": {
                                            "anyOf": [
                                                {
                                                    "type": "number"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "total_reviews": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "reviews",
                                        "average_rating",
                                        "total_reviews"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Tutor not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/update_password": {
            "post": {
                "operationId": "account.updatePassword",
                "summary": "Update authenticated user's password",
                "tags": [
                    "[Public] APIs",
                    "Account"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "current_password": {
                                        "type": "string"
                                    },
                                    "new_password": {
                                        "type": "string",
                                        "minLength": 8
                                    },
                                    "confirm_password": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "current_password",
                                    "new_password",
                                    "confirm_password"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "success"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Password Changed Successfully"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "New Password cannot be same as your current password."
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Current Password is Invalid"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Please login first"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/update_userdata": {
            "post": {
                "operationId": "student.auth.account.updateUserdata_0",
                "tags": [
                    "[Public] APIs",
                    "Account"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "skills": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "success"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "None"
                                                },
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason",
                                                "user"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "Name cannot be empty"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "Unauthorized login"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "student.auth.account.updateUserdata_1",
                "tags": [
                    "[Public] APIs",
                    "Account"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "skills": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "success"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "None"
                                                },
                                                "user": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason",
                                                "user"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "Name cannot be empty"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "failed"
                                                },
                                                "error_reason": {
                                                    "type": "string",
                                                    "const": "Unauthorized login"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "error_reason"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/user": {
            "get": {
                "operationId": "publicApi.auth.me.show_0",
                "description": "Returns the user object plus:\n- email_verified: whether the email has been verified\n- referral_code: the user's shareable referral code (null if none yet)\n- wallet_credits: current unexpired credit balance\n- signup_bonus_credits: credits granted at signup (for display purposes)\n- email_verification_bonus_credits: credits available on verification",
                "summary": "Get the authenticated user with onboarding context",
                "tags": [
                    "[Public] APIs",
                    "Authentication",
                    "Me"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/user/notifications": {
            "get": {
                "operationId": "user.notifications.index",
                "description": "Returns unread notifications first, then up to 50 total.\nIncludes a top-level `unread_count` for the bell badge.",
                "summary": "List the authenticated user's notifications (newest first)",
                "tags": [
                    "[Public] APIs",
                    "UserNotification"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "notifications": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/UserNotification"
                                            }
                                        },
                                        "unread_count": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "notifications",
                                        "unread_count"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/user/notifications/read-all": {
            "post": {
                "operationId": "user.notifications.markAllRead",
                "summary": "Mark all notifications as read",
                "tags": [
                    "[Public] APIs",
                    "UserNotification"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "All notifications marked as read."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/user/notifications/{id}/read": {
            "post": {
                "operationId": "user.notifications.markRead",
                "summary": "Mark a single notification as read",
                "tags": [
                    "[Public] APIs",
                    "UserNotification"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marked as read."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/users": {
            "get": {
                "operationId": "admin.users.users_0",
                "tags": [
                    "[Public] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid role. Allowed values: student, instructor, admin"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "The role query parameter is required. Allowed values: student, instructor, admin"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/vacancies": {
            "get": {
                "operationId": "publicApi.vacancies.vacancy.index",
                "tags": [
                    "[Public] APIs",
                    "Vacancy"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Vacancy"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/vacancies/{id}": {
            "get": {
                "operationId": "publicApi.vacancies.vacancy.show",
                "tags": [
                    "[Public] APIs",
                    "Vacancy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "department_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "location": {
                                            "type": "string"
                                        },
                                        "work_mode": {
                                            "type": "string"
                                        },
                                        "vacancy_location_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "type": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "status": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "requirements": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "salary_range": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "responsibilities": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "is_active": {
                                            "type": "integer"
                                        },
                                        "created_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "display_location": {
                                            "type": "string"
                                        },
                                        "vacancy_location": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "city": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "city",
                                                "country",
                                                "description",
                                                "is_active",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "department_id",
                                        "location",
                                        "work_mode",
                                        "vacancy_location_id",
                                        "type",
                                        "status",
                                        "title",
                                        "description",
                                        "requirements",
                                        "salary_range",
                                        "responsibilities",
                                        "is_active",
                                        "created_at",
                                        "updated_at",
                                        "display_location",
                                        "vacancy_location"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    }
                }
            }
        },
        "/v1/vacancies/{vacancyId}/apply": {
            "post": {
                "operationId": "publicApi.vacancies.jobApplication.store",
                "summary": "Submit a job application publicly (guest or authenticated user)",
                "tags": [
                    "[Public] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "vacancyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cover_letter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "resume_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "resume": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    },
                                    "applicant_name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "applicant_email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "applicant_phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 32
                                    },
                                    "internship_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "SIWES",
                                            "PROFESSIONAL"
                                        ]
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Application submitted successfully."
                                                },
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Your student account is ready. Log in and complete your internship application."
                                                },
                                                "workflow": {
                                                    "type": "string",
                                                    "const": "internship_onboarding"
                                                },
                                                "next_step": {
                                                    "type": "string",
                                                    "const": "student_dashboard_internship_application"
                                                },
                                                "student_account_created": {
                                                    "type": "string"
                                                },
                                                "vacancy": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "user": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "email",
                                                        "name"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "workflow",
                                                "next_step",
                                                "student_account_created",
                                                "vacancy",
                                                "user"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Instructor application submitted."
                                                },
                                                "application": {
                                                    "$ref": "#/components/schemas/Application"
                                                },
                                                "workflow": {
                                                    "type": "string",
                                                    "const": "instructor_application"
                                                },
                                                "applicant_quiz": {
                                                    "type": "object",
                                                    "properties": {
                                                        "token": {
                                                            "type": "string"
                                                        },
                                                        "expires_at": {
                                                            "type": "string"
                                                        },
                                                        "questions_url": {
                                                            "type": "string"
                                                        },
                                                        "submit_url_template": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "token",
                                                        "expires_at",
                                                        "questions_url",
                                                        "submit_url_template"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "application",
                                                "workflow",
                                                "applicant_quiz"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/vacancy-departments": {
            "get": {
                "operationId": "publicApi.vacancies.department.index",
                "tags": [
                    "[Public] APIs",
                    "Department"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Department"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/vacancy-locations": {
            "get": {
                "operationId": "publicApi.vacancies.vacancyLocation.index",
                "tags": [
                    "[Public] APIs",
                    "VacancyLocation"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/VacancyLocation"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/webhook/apple": {
            "post": {
                "operationId": "webhooks.apple",
                "description": "Apple POST a `{ \"signedPayload\": \"<JWS>\" }` envelope to this endpoint.\nThe controller decodes (but does not fully verify) the top-level JWS\nand any nested `signedTransactionInfo` / `signedRenewalInfo` JWS values,\nthen persists the event, transaction, and subscription state to their\nrespective IAP tables before dispatching `ProcessAppleNotificationJob`\nfor asynchronous processing.\n\nIdempotency is keyed on `notificationUUID` (falling back to a SHA-256\nof the raw body). Duplicate deliveries are handled via `updateOrInsert`.",
                "summary": "Receive Apple App Store Server Notifications V2",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "signedPayload": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/webhook/google": {
            "post": {
                "operationId": "webhooks.google",
                "description": "Google delivers a Pub/Sub push envelope:\n`{ \"message\": { \"data\": \"<base64(json)>\", \"messageId\": \"...\" }, \"subscription\": \"...\" }`.\nThe `message.data` field is base64-decoded to obtain the RTDN JSON which\ncontains either a `subscriptionNotification` or `oneTimeProductNotification`.\n\nThe controller stores the raw event, a minimal transaction record, and\n(for subscription RTDNs) a subscription row before dispatching\n`ProcessGoogleRtdnJob`. Full subscription details must be fetched separately\nfrom the Google Play Developer API inside the job.\n\nIdempotency is keyed on `message.messageId` (falling back to a SHA-256\nof the decoded data). Must return 2xx to prevent Pub/Sub retries.",
                "summary": "Receive Google Play Real-Time Developer Notifications (RTDN) via Pub/Sub push",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/webhooks/stripe": {
            "post": {
                "operationId": "publicApi.billing.webhook.stripe_0__post_v1_webhooks_stripe",
                "description": "Verifies the `Stripe-Signature` header against the configured webhook\nsecret, then persists the event to `iap_webhook_events`,\n`iap_transactions`, and (for subscription events) `iap_subscriptions`.\n\nDispatches background jobs for key event types:\n- `invoice.paid` \u2192 `ProcessStripeInvoicePaidJob`\n- `checkout.session.completed` / `payment_intent.succeeded` \u2192 `ProcessStripeCreditBundleJob`\n\nTo correctly route purchases, include `user_id`, `product_id`, and\n`type` in Stripe metadata when creating checkout sessions or subscriptions.\nExample: `['user_id' => 123, 'product_id' => 'credits.bundle.4', 'type' => 'addon_credits']`",
                "summary": "Receive Stripe webhook events",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/welcome": {
            "get": {
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Welcome to the LMS API!"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "[Public] APIs"
                ]
            }
        },
        "/v1/zoom/meetings": {
            "get": {
                "operationId": "liveClass.liveClassSchedules",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "live_classes": {
                                            "type": "string"
                                        },
                                        "live_class_settings": {
                                            "type": "object",
                                            "properties": {
                                                "join_open_minutes": {
                                                    "type": "integer"
                                                },
                                                "cancel_hours_before": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "join_open_minutes",
                                                "cancel_hours_before"
                                            ]
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "zoom_sdk_client_id": {
                                            "type": "string"
                                        },
                                        "zoom_sdk_client_secret": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "live_classes",
                                        "live_class_settings",
                                        "zoom_sdk",
                                        "zoom_sdk_client_id",
                                        "zoom_sdk_client_secret"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Course access expired"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Not registered for this course"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Active subscription required"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/zoom/settings": {
            "get": {
                "operationId": "liveClass.zoomSettings",
                "tags": [
                    "[Public] APIs",
                    "LiveClass"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/webhooks/stripe": {
            "post": {
                "operationId": "publicApi.billing.webhook.stripe_0",
                "description": "Verifies the `Stripe-Signature` header against the configured webhook\nsecret, then persists the event to `iap_webhook_events`,\n`iap_transactions`, and (for subscription events) `iap_subscriptions`.\n\nDispatches background jobs for key event types:\n- `invoice.paid` \u2192 `ProcessStripeInvoicePaidJob`\n- `checkout.session.completed` / `payment_intent.succeeded` \u2192 `ProcessStripeCreditBundleJob`\n\nTo correctly route purchases, include `user_id`, `product_id`, and\n`type` in Stripe metadata when creating checkout sessions or subscriptions.\nExample: `['user_id' => 123, 'product_id' => 'credits.bundle.4', 'type' => 'addon_credits']`",
                "summary": "Receive Stripe webhook events",
                "tags": [
                    "[Public] APIs",
                    "Webhooks",
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/student/assignments": {
            "get": {
                "operationId": "student.assignments.index",
                "description": "Returns assignments for courses where the student is enrolled.",
                "summary": "List assignments available to the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Assignments",
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "course_id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "questions": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "question_file": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "total_marks": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "deadline": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "note": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "status": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "created_at": {
                                                                "type": "string"
                                                            },
                                                            "updated_at": {
                                                                "type": "string"
                                                            },
                                                            "my_submission": {
                                                                "type": [
                                                                    "object",
                                                                    "null"
                                                                ],
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "status": {
                                                                        "type": "integer"
                                                                    },
                                                                    "marks": {
                                                                        "type": "string"
                                                                    },
                                                                    "remarks": {
                                                                        "type": "string"
                                                                    },
                                                                    "created_at": {
                                                                        "type": "string"
                                                                    },
                                                                    "updated_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "id",
                                                                    "status",
                                                                    "marks",
                                                                    "remarks",
                                                                    "created_at",
                                                                    "updated_at"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "course_id",
                                                            "title",
                                                            "questions",
                                                            "question_file",
                                                            "total_marks",
                                                            "deadline",
                                                            "note",
                                                            "status",
                                                            "created_at",
                                                            "updated_at",
                                                            "my_submission"
                                                        ]
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "current_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "per_page": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/assignments/submissions": {
            "get": {
                "operationId": "student.assignments.submissions",
                "summary": "Get all submissions by the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Assignments",
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "assignment_id": {
                                                        "type": "integer"
                                                    },
                                                    "answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "note": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "marks": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "remarks": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "assignment": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "course_id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "total_marks": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "deadline": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "course_id",
                                                            "title",
                                                            "total_marks",
                                                            "deadline"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "assignment_id",
                                                    "answer",
                                                    "file",
                                                    "note",
                                                    "marks",
                                                    "remarks",
                                                    "status",
                                                    "created_at",
                                                    "updated_at",
                                                    "assignment"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/assignments/{id}": {
            "get": {
                "operationId": "student.assignments.show",
                "summary": "Get a single assignment available to the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Assignments",
                    "Assignment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": "string"
                                                },
                                                "question_file": {
                                                    "type": "string"
                                                },
                                                "total_marks": {
                                                    "type": "string"
                                                },
                                                "deadline": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "my_submission": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "assignment_id": {
                                                    "type": "integer"
                                                },
                                                "answer": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": "string"
                                                },
                                                "marks": {
                                                    "type": "string"
                                                },
                                                "remarks": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "assignment_id",
                                                "answer",
                                                "file",
                                                "note",
                                                "marks",
                                                "remarks",
                                                "status",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "assignment",
                                        "my_submission"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/assignments/{id}/submit": {
            "post": {
                "operationId": "student.assignments.submit",
                "summary": "Submit or update assignment response for the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Assignments",
                    "Assignment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answer": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 20480
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment submitted successfully."
                                        },
                                        "submission": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "assignment_id": {
                                                    "type": "integer"
                                                },
                                                "answer": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "assignment_id",
                                                "answer",
                                                "file",
                                                "note",
                                                "marks",
                                                "remarks",
                                                "status",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "submission"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/billing/credits/bundles": {
            "get": {
                "operationId": "billing.student.creditBundles.index",
                "tags": [
                    "[Student] APIs",
                    "CreditBundle"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "bundles": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CreditBundle"
                                            }
                                        }
                                    },
                                    "required": [
                                        "bundles"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/credits/iap-purchase": {
            "post": {
                "operationId": "student.billing.subscription.purchaseCreditBundleIap_0__post_v1_student_billing_credits_iap_purchase",
                "description": "Validates and records a credit bundle purchase made through Apple App Store\nor Google Play. Increments the user's credit balance by the bundle's credit\namount (or by the supplied `amount` override).",
                "summary": "Purchase a credit bundle via mobile in-app purchase",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "iap_product_id": {
                                        "type": "string"
                                    },
                                    "purchase_token": {
                                        "type": "string"
                                    },
                                    "platform": {
                                        "type": "string",
                                        "enum": [
                                            "ios",
                                            "android"
                                        ]
                                    },
                                    "amount": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "purchase_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "iap_product_id",
                                    "purchase_token",
                                    "platform"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/iap/link": {
            "post": {
                "operationId": "student.billing.iapLink.upsert_0__post_v1_student_billing_iap_link",
                "description": "Creates stable, unique identifiers for Apple (appAccountToken as UUID)\nand Google (obfuscatedExternalAccountId) if they don't already exist.\nThese tokens are used to link app store purchases back to the user's\naccount. Safe to call multiple times \u2014 existing tokens are preserved.",
                "summary": "Generate or retrieve IAP account linking tokens for the authenticated user",
                "tags": [
                    "[Student] APIs",
                    "In-App Purchases",
                    "IapLink"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/iap/validate": {
            "post": {
                "operationId": "student.billing.inAppPurchase.validateReceipt_0__post_v1_student_billing_iap_validate",
                "description": "Submits the receipt to the `InAppPurchaseService` which validates it\nagainst Apple App Store or Google Play and activates the corresponding\nsubscription or entitlement for the authenticated user.",
                "summary": "Validate and process a mobile in-app purchase receipt",
                "tags": [
                    "[Student] APIs",
                    "In-App Purchases",
                    "InAppPurchase"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "platform": {
                                        "type": "string",
                                        "enum": [
                                            "apple",
                                            "google"
                                        ]
                                    },
                                    "receipt": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "platform",
                                    "receipt"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/invoices": {
            "get": {
                "operationId": "student.billing.invoice.index",
                "tags": [
                    "[Student] APIs",
                    "Invoice"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Invoice"
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/invoices/{id}": {
            "get": {
                "operationId": "student.billing.invoice.show",
                "tags": [
                    "[Student] APIs",
                    "Invoice"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Invoice"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/invoices/{id}/download": {
            "get": {
                "operationId": "invoice.download",
                "tags": [
                    "[Student] APIs",
                    "Invoice"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/payment-methods": {
            "get": {
                "operationId": "paymentMethod.index",
                "tags": [
                    "[Student] APIs",
                    "PaymentMethod"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/payment-methods/{id}": {
            "delete": {
                "operationId": "paymentMethod.destroy",
                "tags": [
                    "[Student] APIs",
                    "PaymentMethod"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment method removed."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to remove payment method."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/payment-methods/{id}/default": {
            "patch": {
                "operationId": "paymentMethod.setDefault",
                "tags": [
                    "[Student] APIs",
                    "PaymentMethod"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Default payment method updated."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to update default payment method."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/profiles": {
            "get": {
                "operationId": "billingProfile.index",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BillingProfile"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "billingProfile.store",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "label": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "full_name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "company_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "address_line_1": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "address_line_2": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "city": {
                                        "type": "string",
                                        "maxLength": 100
                                    },
                                    "state": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "postal_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 20
                                    },
                                    "country": {
                                        "type": "string",
                                        "minLength": 2,
                                        "maxLength": 2
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "tax_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "is_default": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "full_name",
                                    "address_line_1",
                                    "city",
                                    "country"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BillingProfile"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/profiles/{id}": {
            "get": {
                "operationId": "billingProfile.show",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/BillingProfile"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Billing profile not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "billingProfile.update",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "label": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "full_name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "company_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "address_line_1": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "address_line_2": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "city": {
                                        "type": "string",
                                        "maxLength": 100
                                    },
                                    "state": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "postal_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 20
                                    },
                                    "country": {
                                        "type": "string",
                                        "minLength": 2,
                                        "maxLength": 2
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "tax_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Billing profile not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "billingProfile.destroy",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Billing profile deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Billing profile not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/profiles/{id}/default": {
            "patch": {
                "operationId": "billingProfile.setDefault",
                "tags": [
                    "[Student] APIs",
                    "BillingProfile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Billing profile not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/stripe/checkout/session": {
            "post": {
                "operationId": "student.billing.stripe.checkout.session",
                "description": "\u26a0\ufe0f Cannot generate request documentation: Scope is not initialized for route.",
                "summary": "Create a Stripe Checkout session for subscription or credit bundle purchase",
                "tags": [
                    "[Student] APIs",
                    "StripeCheckout"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to create Stripe checkout session."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "credit_bundle"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "credit_bundle_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "credit_bundle_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "checkout_type": {
                                                    "type": "string",
                                                    "const": "subscription"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "subscription_plan_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "checkout_type",
                                                "session_id",
                                                "checkout_url",
                                                "subscription_plan_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You already have an active subscription. Cancel it before starting another subscription provider."
                                        },
                                        "code": {
                                            "type": "string",
                                            "const": "active_subscription_conflict"
                                        },
                                        "attempted_provider": {
                                            "type": "string",
                                            "const": "stripe"
                                        },
                                        "active_provider": {
                                            "type": "string",
                                            "enum": [
                                                "unknown",
                                                "iap",
                                                "stripe"
                                            ]
                                        },
                                        "active_until": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "next_steps": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string",
                                                    "const": "Cancel your current subscription before switching provider."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "If your current provider is Apple or Google, cancel from the store subscription settings."
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "After cancellation is effective, retry subscription checkout."
                                                }
                                            ],
                                            "minItems": 3,
                                            "maxItems": 3,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "code",
                                        "attempted_provider",
                                        "active_provider",
                                        "active_until",
                                        "next_steps"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/cancel": {
            "post": {
                "operationId": "student.billing.subscription.cancel_0__post_v1_student_billing_subscriptions_cancel",
                "description": "Marks the subscription to cancel when the current billing period ends.\nThe student retains access until `ends_at`. Only works for subscriptions\nwith a valid `stripe_subscription_id`.",
                "summary": "Schedule a Stripe subscription cancellation at the end of the billing period",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/cancel-immediately": {
            "post": {
                "operationId": "student.billing.subscription.cancelImmediately_0__post_v1_student_billing_subscriptions_cancel_immediately",
                "description": "Cancels the subscription at Stripe without waiting for the billing period\nto end. Access may be revoked immediately depending on platform behaviour.\nOnly works for subscriptions with a valid `stripe_subscription_id`.",
                "summary": "Immediately cancel the authenticated student's Stripe subscription",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/change-plan": {
            "post": {
                "operationId": "subscription.changePlan",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "plan_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "plan_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Plan changed successfully."
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "success": {
                                                            "type": "boolean"
                                                        },
                                                        "provider": {
                                                            "type": "string",
                                                            "const": "credit"
                                                        },
                                                        "credit_value": {
                                                            "type": "string"
                                                        },
                                                        "net_charge": {
                                                            "type": "string"
                                                        },
                                                        "net_credit": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "success",
                                                        "provider",
                                                        "credit_value",
                                                        "net_charge",
                                                        "net_credit"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "success": {
                                                            "type": "boolean"
                                                        },
                                                        "error": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "success",
                                                        "error"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "success": {
                                                            "type": "boolean"
                                                        },
                                                        "provider": {
                                                            "type": "string",
                                                            "const": "stripe"
                                                        },
                                                        "new_period_end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "success",
                                                        "provider",
                                                        "new_period_end"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "success": {
                                                            "type": "boolean"
                                                        },
                                                        "error": {
                                                            "type": "string",
                                                            "const": "Missing subscription item or price ID"
                                                        }
                                                    },
                                                    "required": [
                                                        "success",
                                                        "error"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Plan not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No active subscription"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/checkout": {
            "post": {
                "operationId": "subscriptionCheckout.checkout",
                "tags": [
                    "[Student] APIs",
                    "SubscriptionCheckout"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subscription_plan_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "credit_bundle_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "payment_mode": {
                                        "type": "string",
                                        "enum": [
                                            "credits",
                                            "normal",
                                            "offline"
                                        ]
                                    },
                                    "gateway": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 40
                                    },
                                    "success_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "cancel_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "checkout_attempt_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 128
                                    }
                                },
                                "required": [
                                    "payment_mode"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "pending"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "normal"
                                                },
                                                "gateway": {
                                                    "type": "string",
                                                    "const": "stripe"
                                                },
                                                "target_type": {
                                                    "type": "string",
                                                    "const": "credit_bundle"
                                                },
                                                "target_id": {
                                                    "type": "integer"
                                                },
                                                "checkout_url": {
                                                    "type": "string"
                                                },
                                                "transaction_id": {
                                                    "type": "integer"
                                                },
                                                "next_action": {
                                                    "type": "object",
                                                    "properties": {
                                                        "type": {
                                                            "type": "string",
                                                            "const": "redirect"
                                                        },
                                                        "url": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "type",
                                                        "url"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "payment_status",
                                                "payment_mode",
                                                "gateway",
                                                "target_type",
                                                "target_id",
                                                "checkout_url",
                                                "transaction_id",
                                                "next_action"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "paid"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                "target_type": {
                                                    "type": "string",
                                                    "const": "credit_bundle"
                                                },
                                                "target_id": {
                                                    "type": "integer"
                                                },
                                                "total_paid_credits": {
                                                    "type": "integer"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "transaction_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "payment_status",
                                                "payment_mode",
                                                "target_type",
                                                "target_id",
                                                "total_paid_credits",
                                                "currency",
                                                "transaction_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to create checkout session."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Credit bundle not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription plan not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You already have an active subscription. Cancel it before starting another subscription provider."
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "active_subscription_conflict"
                                                },
                                                "attempted_provider": {
                                                    "type": "string",
                                                    "const": "stripe"
                                                },
                                                "active_provider": {
                                                    "type": "string",
                                                    "enum": [
                                                        "unknown",
                                                        "iap",
                                                        "stripe"
                                                    ]
                                                },
                                                "active_until": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next_steps": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "Cancel your current subscription before switching provider."
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "If your current provider is Apple or Google, cancel from the store subscription settings."
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "After cancellation is effective, retry subscription checkout."
                                                        }
                                                    ],
                                                    "minItems": 3,
                                                    "maxItems": 3,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code",
                                                "attempted_provider",
                                                "active_provider",
                                                "active_until",
                                                "next_steps"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You already have an active subscription. Cancel it before starting another subscription provider."
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "active_subscription_conflict"
                                                },
                                                "attempted_provider": {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                "active_provider": {
                                                    "type": "string",
                                                    "enum": [
                                                        "unknown",
                                                        "iap",
                                                        "stripe"
                                                    ]
                                                },
                                                "active_until": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next_steps": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "Cancel your current subscription before switching provider."
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "If your current provider is Apple or Google, cancel from the store subscription settings."
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "After cancellation is effective, retry subscription checkout."
                                                        }
                                                    ],
                                                    "minItems": 3,
                                                    "maxItems": 3,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code",
                                                "attempted_provider",
                                                "active_provider",
                                                "active_until",
                                                "next_steps"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "402": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Insufficient credits"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                },
                                                "credit_balance": {
                                                    "type": "integer"
                                                },
                                                "credit_required": {
                                                    "type": "integer"
                                                },
                                                "credit_shortfall": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code",
                                                "credit_balance",
                                                "credit_required",
                                                "credit_shortfall"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/checkout/offline": {
            "post": {
                "operationId": "subscriptionCheckout.checkoutOffline",
                "tags": [
                    "[Student] APIs",
                    "SubscriptionCheckout"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subscription_plan_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "credit_bundle_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "payment_mode": {
                                        "type": "string",
                                        "enum": [
                                            "offline"
                                        ]
                                    },
                                    "payment_proof": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 5120
                                    },
                                    "reference": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "checkout_attempt_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 128
                                    }
                                },
                                "required": [
                                    "payment_mode",
                                    "payment_proof"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "order_id": {
                                            "type": "integer"
                                        },
                                        "payment_mode": {
                                            "type": "string",
                                            "const": "offline"
                                        },
                                        "payment_status": {
                                            "type": "string",
                                            "const": "pending_approval"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "pending_approval"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Offline subscription checkout submitted and pending approval."
                                        }
                                    },
                                    "required": [
                                        "order_id",
                                        "payment_mode",
                                        "payment_status",
                                        "status",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Credit bundle not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription plan not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/credits": {
            "get": {
                "operationId": "student.billing.subscription.credits_0__get_v1_student_billing_subscriptions_credits",
                "description": "Returns a breakdown of the student's live-class credit balance including\ntotal, remaining usable, used, frozen, and the billing window dates,\ncomputed by the `SubscriptionCreditSummaryService`.",
                "summary": "Get the authenticated student's credit summary",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/current": {
            "get": {
                "operationId": "student.billing.subscriptionSnapshot.show_0__get_v1_student_billing_subscriptions_current",
                "tags": [
                    "[Student] APIs",
                    "SubscriptionSnapshot"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "platform": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "product_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "renews_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "plan": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "billing_period": {
                                                            "type": "string"
                                                        },
                                                        "monthly_credits": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "billing_period",
                                                        "monthly_credits"
                                                    ]
                                                },
                                                "monthly_credits": {
                                                    "type": "integer"
                                                },
                                                "billing_period": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "active",
                                                "platform",
                                                "product_id",
                                                "status",
                                                "renews_at",
                                                "plan",
                                                "monthly_credits",
                                                "billing_period"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "platform": {
                                                    "type": "null"
                                                },
                                                "product_id": {
                                                    "type": "null"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "const": "NONE"
                                                },
                                                "renews_at": {
                                                    "type": "null"
                                                },
                                                "plan": {
                                                    "type": "null"
                                                },
                                                "monthly_credits": {
                                                    "type": "integer"
                                                },
                                                "billing_period": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "active",
                                                "platform",
                                                "product_id",
                                                "status",
                                                "renews_at",
                                                "plan",
                                                "monthly_credits",
                                                "billing_period"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/iap": {
            "post": {
                "operationId": "student.billing.subscription.createIapSubscription_0__post_v1_student_billing_subscriptions_iap",
                "description": "Looks up the matching SubscriptionPlan using the provided `iap_product_id`\n(matched against `stripe_price_id` or `iap_product_id` on the plan).\nCreates the subscription with status `active` and credit allocation from\nthe plan. Intended for post-receipt-validation subscription activation.",
                "summary": "Create a new subscription from a mobile in-app purchase (IAP)",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "iap_product_id": {
                                        "type": "string"
                                    },
                                    "starts_at": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "ends_at": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "iap_product_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/my": {
            "get": {
                "operationId": "student.billing.subscription.mySubscription_0__get_v1_student_billing_subscriptions_my",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "subscription": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "starts_at": {
                                                            "type": "string"
                                                        },
                                                        "ends_at": {
                                                            "type": "string"
                                                        },
                                                        "live_class_credits_total": {
                                                            "type": "integer"
                                                        },
                                                        "live_class_credits_remaining": {
                                                            "type": "integer"
                                                        },
                                                        "credit_balances": {
                                                            "type": "object",
                                                            "properties": {
                                                                "total": {
                                                                    "type": "integer"
                                                                },
                                                                "remaining": {
                                                                    "type": "integer"
                                                                },
                                                                "used": {
                                                                    "type": "integer"
                                                                },
                                                                "used_percent": {
                                                                    "type": "number"
                                                                },
                                                                "frozen": {
                                                                    "type": "integer"
                                                                },
                                                                "window": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ]
                                                                }
                                                            },
                                                            "required": [
                                                                "total",
                                                                "remaining",
                                                                "used",
                                                                "used_percent",
                                                                "frozen",
                                                                "window"
                                                            ]
                                                        },
                                                        "credit_summary": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "status",
                                                        "starts_at",
                                                        "ends_at",
                                                        "live_class_credits_total",
                                                        "live_class_credits_remaining",
                                                        "credit_balances",
                                                        "credit_summary"
                                                    ]
                                                },
                                                "approved_request": {
                                                    "type": "null"
                                                },
                                                "approved_plan": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "subscription",
                                                "approved_request",
                                                "approved_plan"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "subscription": {
                                                    "type": "null"
                                                },
                                                "approved_request": {
                                                    "type": "null"
                                                },
                                                "approved_plan": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "is_active",
                                                "subscription",
                                                "approved_request",
                                                "approved_plan"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/payment-gateways": {
            "get": {
                "operationId": "subscriptionCheckout.paymentGateways",
                "tags": [
                    "[Student] APIs",
                    "SubscriptionCheckout"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "gateways": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "default_gateway": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "gateways",
                                                "default_gateway"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "gateways": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "default_gateway": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "gateways",
                                                "default_gateway"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/payment-methods": {
            "get": {
                "operationId": "subscriptionCheckout.paymentMethods",
                "tags": [
                    "[Student] APIs",
                    "SubscriptionCheckout"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "available_methods": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "offline"
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "normal"
                                                }
                                            ],
                                            "minItems": 3,
                                            "maxItems": 3,
                                            "additionalItems": false
                                        },
                                        "offline_payment_bank_details": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        ""
                                                    ]
                                                }
                                            ]
                                        },
                                        "credit_balance": {
                                            "type": "integer"
                                        },
                                        "eligibility": {
                                            "type": "object",
                                            "properties": {
                                                "credits": {
                                                    "type": "boolean"
                                                },
                                                "offline": {
                                                    "type": "boolean"
                                                },
                                                "normal": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "credits",
                                                "offline",
                                                "normal"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "available_methods",
                                        "offline_payment_bank_details",
                                        "credit_balance",
                                        "eligibility"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/plans": {
            "get": {
                "operationId": "student.billing.subscription.plans_0__get_v1_student_billing_subscriptions_plans",
                "description": "Returns all active, recurring subscription plans that have a\n`stripe_price_id` configured, ordered by `sort` then `id`. Also includes\nthe student's current subscription state, credit balances, and a\n`current_plan_id` (the most recently purchased plan from Stripe credits).",
                "summary": "List active subscription plans available to the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/subscriptions/preview-plan-change": {
            "post": {
                "operationId": "subscription.previewPlanChange",
                "tags": [
                    "[Student] APIs",
                    "Subscriptions",
                    "Subscription"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "plan_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "plan_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "provider": {
                                                            "type": "string",
                                                            "const": "credit"
                                                        },
                                                        "current_plan_price": {
                                                            "type": "number"
                                                        },
                                                        "new_plan_price": {
                                                            "type": "number"
                                                        },
                                                        "remaining_days": {
                                                            "type": [
                                                                "object",
                                                                "null"
                                                            ]
                                                        },
                                                        "total_days": {
                                                            "type": "string"
                                                        },
                                                        "credit_value": {
                                                            "type": "number"
                                                        },
                                                        "net_charge": {
                                                            "type": [
                                                                "object",
                                                                "null"
                                                            ]
                                                        },
                                                        "net_credit": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "integer"
                                                                },
                                                                {
                                                                    "type": "number"
                                                                },
                                                                {
                                                                    "type": "integer",
                                                                    "enum": [
                                                                        0
                                                                    ]
                                                                }
                                                            ]
                                                        },
                                                        "currency": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "usd"
                                                                    ]
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "provider",
                                                        "current_plan_price",
                                                        "new_plan_price",
                                                        "remaining_days",
                                                        "total_days",
                                                        "credit_value",
                                                        "net_charge",
                                                        "net_credit",
                                                        "currency"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "error": {
                                                            "type": "string",
                                                            "const": "Invalid subscription period"
                                                        }
                                                    },
                                                    "required": [
                                                        "error"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "error": {
                                                            "type": "string",
                                                            "const": "Subscription dates not set"
                                                        }
                                                    },
                                                    "required": [
                                                        "error"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "error": {
                                                            "type": "string",
                                                            "const": "Cannot determine current plan"
                                                        }
                                                    },
                                                    "required": [
                                                        "error"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "error": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "error"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "provider": {
                                                            "type": "string",
                                                            "const": "stripe"
                                                        },
                                                        "proration_amount_cents": {
                                                            "type": "integer"
                                                        },
                                                        "proration_amount": {
                                                            "type": "string"
                                                        },
                                                        "currency": {
                                                            "type": "string"
                                                        },
                                                        "next_invoice_amount_cents": {
                                                            "type": "string"
                                                        },
                                                        "next_invoice_amount": {
                                                            "type": "string"
                                                        },
                                                        "billing_period_end": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "provider",
                                                        "proration_amount_cents",
                                                        "proration_amount",
                                                        "currency",
                                                        "next_invoice_amount_cents",
                                                        "next_invoice_amount",
                                                        "billing_period_end"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "error": {
                                                            "type": "string",
                                                            "const": "Missing subscription item or price ID"
                                                        }
                                                    },
                                                    "required": [
                                                        "error"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Plan not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No active subscription"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/wallet": {
            "get": {
                "operationId": "student.billing.wallet.show_0__get_v1_student_billing_wallet",
                "tags": [
                    "[Student] APIs",
                    "Wallet"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "balance": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "balance"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/billing/wallet/ledger": {
            "get": {
                "operationId": "student.billing.wallet.ledger_0__get_v1_student_billing_wallet_ledger",
                "tags": [
                    "[Student] APIs",
                    "Wallet"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/blog-comments": {
            "post": {
                "operationId": "student.content.blog.storeComment_0",
                "summary": "Add a comment to a blog post (supports replies via parent_id)",
                "tags": [
                    "[Student] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "blog_id": {
                                        "type": "integer"
                                    },
                                    "comment": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                    },
                                    "parent_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "blog_id",
                                    "comment"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment added."
                                        },
                                        "comment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "blog_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "parent_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "check": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "comment": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "likes": {
                                                    "type": "integer"
                                                },
                                                "user_liked": {
                                                    "type": "boolean"
                                                },
                                                "replies": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "blog_id",
                                                "user_id",
                                                "parent_id",
                                                "check",
                                                "comment",
                                                "created_at",
                                                "updated_at",
                                                "likes",
                                                "user_liked",
                                                "replies"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "comment"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/blog-comments/{id}": {
            "put": {
                "operationId": "student.content.blog.updateComment_0",
                "summary": "Update a comment (owner only)",
                "tags": [
                    "[Student] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "comment": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                    }
                                },
                                "required": [
                                    "comment"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment updated."
                                        },
                                        "comment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "blog_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "parent_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "check": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "comment": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "likes": {
                                                    "type": "integer"
                                                },
                                                "user_liked": {
                                                    "type": "boolean"
                                                },
                                                "replies": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "blog_id",
                                                "user_id",
                                                "parent_id",
                                                "check",
                                                "comment",
                                                "created_at",
                                                "updated_at",
                                                "likes",
                                                "user_liked",
                                                "replies"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "comment"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.content.blog.deleteComment_1",
                "summary": "Delete a comment (owner or admin)",
                "tags": [
                    "[Student] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Comment deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You can only delete your own comments."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/blog-comments/{id}/like": {
            "post": {
                "operationId": "student.content.blog.toggleCommentLike_0",
                "summary": "Toggle like on a blog comment",
                "tags": [
                    "[Student] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "liked": {
                                            "type": "string"
                                        },
                                        "likes": {
                                            "type": "string"
                                        },
                                        "user_liked": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "liked",
                                        "likes",
                                        "user_liked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/blogs/{id}/like": {
            "post": {
                "operationId": "student.content.blog.toggleLike_0",
                "summary": "Toggle like on a blog post",
                "tags": [
                    "[Student] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "liked": {
                                            "type": "boolean"
                                        },
                                        "like_count": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "liked",
                                        "like_count"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/classes/{classId}/join": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.joinClass_0__get_v1_student_bootcamps_classes_classId_join",
                "description": "Verifies the student has purchased the bootcamp, checks that the\nclass hasn't ended, and returns Zoom join data.",
                "summary": "Get join credentials for a bootcamp live class",
                "tags": [
                    "[Student] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "classId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "class": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "string"
                                                },
                                                "end_time": {
                                                    "type": "string"
                                                },
                                                "provider": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "zoom"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "start_time",
                                                "end_time",
                                                "provider"
                                            ]
                                        },
                                        "join": {
                                            "type": "object",
                                            "properties": {
                                                "zoom_sdk": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "join_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "meeting_password": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "zoom_sdk",
                                                "join_url",
                                                "meeting_id",
                                                "meeting_password"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "class",
                                        "join"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This class has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "You can join shortly before the scheduled time."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Class not found or not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Active subscription required to join live classes."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/my": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.index_0",
                "summary": "List the student's purchased bootcamps",
                "tags": [
                    "[Student] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BootcampPurchase"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/my/{id}": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.show_0",
                "summary": "Get details of a purchased bootcamp with modules, live classes, and resources",
                "tags": [
                    "[Student] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/my/{purchaseId}/invoice": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.invoice_0",
                "summary": "Get purchase invoice for a bootcamp",
                "tags": [
                    "[Student] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "purchaseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/BootcampPurchase"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/resources/{resourceId}": {
            "get": {
                "operationId": "student.bootcamp.myBootcamp.resource_0",
                "description": "Verifies ownership and returns the resource file path.",
                "summary": "Get a downloadable bootcamp resource URL",
                "tags": [
                    "[Student] APIs",
                    "My Bootcamps",
                    "MyBootcamp"
                ],
                "parameters": [
                    {
                        "name": "resourceId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "resource": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "upload_type": {
                                                    "type": "string"
                                                },
                                                "file_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "upload_type",
                                                "file_url"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "resource"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Resource not found or not purchased."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Active subscription required to access this content."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/bootcamps/{id}/purchase": {
            "post": {
                "operationId": "bootcampPurchase.purchase",
                "description": "Handles free bootcamps, checks ownership, prevents duplicate purchases,\nand prepares payment details for paid bootcamps.",
                "summary": "Purchase or enroll in a bootcamp",
                "tags": [
                    "[Student] APIs",
                    "BootcampPurchase"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payment details prepared."
                                                },
                                                "payment_details": {
                                                    "type": "object",
                                                    "properties": {
                                                        "items": {
                                                            "type": "array",
                                                            "prefixItems": [
                                                                {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "string"
                                                                        },
                                                                        "title": {
                                                                            "type": "string"
                                                                        },
                                                                        "subtitle": {
                                                                            "type": "string"
                                                                        },
                                                                        "price": {
                                                                            "type": "string"
                                                                        },
                                                                        "discount_price": {
                                                                            "type": "string"
                                                                        }
                                                                    },
                                                                    "required": [
                                                                        "id",
                                                                        "title",
                                                                        "subtitle",
                                                                        "price",
                                                                        "discount_price"
                                                                    ]
                                                                }
                                                            ],
                                                            "minItems": 1,
                                                            "maxItems": 1,
                                                            "additionalItems": false
                                                        },
                                                        "custom_field": {
                                                            "type": "object",
                                                            "properties": {
                                                                "item_type": {
                                                                    "type": "string",
                                                                    "const": "bootcamp"
                                                                },
                                                                "pay_for": {
                                                                    "type": "string",
                                                                    "const": "Bootcamp payment"
                                                                }
                                                            },
                                                            "required": [
                                                                "item_type",
                                                                "pay_for"
                                                            ]
                                                        },
                                                        "success_method": {
                                                            "type": "object",
                                                            "properties": {
                                                                "model_name": {
                                                                    "type": "string",
                                                                    "const": "BootcampPurchase"
                                                                },
                                                                "function_name": {
                                                                    "type": "string",
                                                                    "const": "purchase_bootcamp"
                                                                }
                                                            },
                                                            "required": [
                                                                "model_name",
                                                                "function_name"
                                                            ]
                                                        },
                                                        "payable_amount": {
                                                            "type": "number"
                                                        },
                                                        "tax": {
                                                            "type": "integer"
                                                        },
                                                        "coupon": {
                                                            "type": "null"
                                                        },
                                                        "cancel_url": {
                                                            "type": "string"
                                                        },
                                                        "success_url": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "items",
                                                        "custom_field",
                                                        "success_method",
                                                        "payable_amount",
                                                        "tax",
                                                        "coupon",
                                                        "cancel_url",
                                                        "success_url"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "payment_details"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "warning": {
                                                    "type": "string",
                                                    "const": "Your payment request is already in process."
                                                }
                                            },
                                            "required": [
                                                "warning"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Enrolled in the bootcamp successfully."
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "Bootcamp already purchased."
                                        }
                                    },
                                    "required": [
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "You cannot purchase your own bootcamp."
                                        }
                                    },
                                    "required": [
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "Bootcamp not found."
                                        }
                                    },
                                    "required": [
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/careers/applications": {
            "get": {
                "operationId": "student.careers.jobApplication.index",
                "summary": "List the authenticated student's job applications",
                "tags": [
                    "[Student] APIs",
                    "JobApplication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/JobApplication"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.careers.jobApplication.store",
                "summary": "Submit a new job application for a vacancy",
                "tags": [
                    "[Student] APIs",
                    "JobApplication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "vacancy_id": {
                                        "type": "integer"
                                    },
                                    "cover_letter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "resume_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "resume": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "vacancy_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application submitted successfully."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/JobApplication"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/careers/applications/{id}": {
            "get": {
                "operationId": "student.careers.jobApplication.show",
                "summary": "Show a single application belonging to the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "student.careers.jobApplication.update",
                "summary": "Update cover letter or resume of a pending application",
                "tags": [
                    "[Student] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cover_letter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "resume_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "resume": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application updated successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.careers.jobApplication.destroy",
                "summary": "Withdraw (delete) a pending application",
                "tags": [
                    "[Student] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application withdrawn successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only submitted applications can be withdrawn."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart": {
            "get": {
                "operationId": "student.commerce.cart.index_0__get_v1_student_commerce_cart",
                "description": "Returns all cart items (courses and ebooks) for the authenticated user,\nalong with individual pricing details and a combined total. Items whose\nunderlying course/ebook no longer exists are silently skipped.",
                "summary": "Get the authenticated user's cart contents",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.commerce.cart.clear_1__delete_v1_student_commerce_cart",
                "description": "Deletes every CartItem record belonging to the authenticated user.",
                "summary": "Clear all items from the authenticated user's cart",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/items/{cartItemId}": {
            "patch": {
                "operationId": "cart.updateItemQuantity",
                "description": "Quantity is fixed to 1 for non-repeatable products.",
                "summary": "Update a cart line quantity",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "parameters": [
                    {
                        "name": "cartItemId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1
                                    }
                                },
                                "required": [
                                    "quantity"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quantity updated"
                                        },
                                        "cart": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "item_count": {
                                                    "type": "integer"
                                                },
                                                "subtotal": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "USD"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "item_count",
                                                "subtotal",
                                                "currency"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "cart",
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cart item not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "cart.removeItem",
                "summary": "Remove a single item from the authenticated user's cart",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "parameters": [
                    {
                        "name": "cartItemId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Item removed"
                                        },
                                        "cart": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "item_count": {
                                                    "type": "integer"
                                                },
                                                "subtotal": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "USD"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "item_count",
                                                "subtotal",
                                                "currency"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "cart",
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cart item not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/legacy-list": {
            "get": {
                "operationId": "student.commerce.cart.cartList_0__get_v1_student_commerce_cart_legacy_list",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/merge": {
            "post": {
                "operationId": "cart.merge",
                "summary": "Merge frontend guest cart rows into authenticated cart",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "strategy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "sum",
                                            "replace",
                                            "keep_server"
                                        ]
                                    },
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            },
                                            "required": [
                                                "item_type",
                                                "item_id"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "items"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Guest cart merged"
                                        },
                                        "cart": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "item_count": {
                                                    "type": "integer"
                                                },
                                                "subtotal": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "USD"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "item_count",
                                                "subtotal",
                                                "currency"
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "merge_report": {
                                            "type": "object",
                                            "properties": {
                                                "added_count": {
                                                    "type": "integer"
                                                },
                                                "updated_count": {
                                                    "type": "integer"
                                                },
                                                "skipped_count": {
                                                    "type": "integer"
                                                },
                                                "conflicts": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "index": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Quantity cannot exceed 1 for this item type."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "index",
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "index": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "index",
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "added_count",
                                                "updated_count",
                                                "skipped_count",
                                                "conflicts"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "cart",
                                        "items",
                                        "merge_report"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/summary": {
            "get": {
                "operationId": "cart.summary",
                "summary": "Return compact cart payload for quick nav refreshes",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "cart_id": {
                                            "type": "integer"
                                        },
                                        "item_count": {
                                            "type": "integer"
                                        },
                                        "subtotal": {
                                            "type": "number"
                                        },
                                        "currency": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        "USD"
                                                    ]
                                                }
                                            ]
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "cart_id",
                                        "item_count",
                                        "subtotal",
                                        "currency",
                                        "items"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/toggle": {
            "post": {
                "operationId": "student.commerce.cart.toggle_0__post_v1_student_commerce_cart_toggle",
                "description": "If the item is already in the cart it is removed (status: \"removed\");\notherwise it is added (status: \"added\"). Accepts either the structured\n`item_type` + `item_id` payload, or legacy `course_id` / `ebook_id`\nfields for backwards compatibility.",
                "summary": "Toggle a course or ebook in/out of the authenticated user's cart",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/cart/tools": {
            "get": {
                "operationId": "student.commerce.cart.cartTools_0__get_v1_student_commerce_cart_tools",
                "tags": [
                    "[Student] APIs",
                    "Cart"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "course_selling_tax": {
                                            "type": "string"
                                        },
                                        "currency_position": {
                                            "type": "string"
                                        },
                                        "currency_symbol": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "Not Authorized Credential"
                                        }
                                    },
                                    "required": [
                                        "course_selling_tax",
                                        "currency_position",
                                        "currency_symbol",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/claim-free": {
            "post": {
                "operationId": "checkout.claimFree",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cart_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "items": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Processed free-item claim requests."
                                        },
                                        "created_count": {
                                            "type": "integer"
                                        },
                                        "skipped_count": {
                                            "type": "integer"
                                        },
                                        "created": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "item_type": {
                                                        "type": "string"
                                                    },
                                                    "item_id": {
                                                        "type": "integer"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "item_type",
                                                    "item_id",
                                                    "status"
                                                ]
                                            }
                                        },
                                        "skipped": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "integer"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Paid item should use checkout payment flow."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "integer"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Access already granted."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "integer"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Unable to submit request for this item."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "created_count",
                                        "skipped_count",
                                        "created",
                                        "skipped"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/complete": {
            "post": {
                "operationId": "checkout.complete",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cart_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "payment_mode": {
                                        "type": "string",
                                        "enum": [
                                            "credits",
                                            "normal"
                                        ]
                                    },
                                    "gateway": {
                                        "type": "string",
                                        "maxLength": 40
                                    },
                                    "success_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "cancel_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "idempotency_key": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 128
                                    },
                                    "items": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            }
                                        }
                                    }
                                },
                                "required": [
                                    "payment_mode"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "pending"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "normal"
                                                },
                                                "gateway": {
                                                    "type": "string"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "total_cash_due": {
                                                    "type": "number"
                                                },
                                                "total_credits_due": {
                                                    "type": "integer"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Free item requires request workflow."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    }
                                                },
                                                "checkout_url": [],
                                                "provider_reference": [],
                                                "transaction_id": [],
                                                "next_action": {
                                                    "type": "object",
                                                    "properties": {
                                                        "type": {
                                                            "type": "string",
                                                            "const": "redirect"
                                                        },
                                                        "url": []
                                                    },
                                                    "required": [
                                                        "type",
                                                        "url"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "payment_status",
                                                "payment_mode",
                                                "gateway",
                                                "currency",
                                                "total_cash_due",
                                                "total_credits_due",
                                                "enrolled_items",
                                                "failed_items",
                                                "checkout_url",
                                                "provider_reference",
                                                "transaction_id",
                                                "next_action"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "order_id": {
                                                    "type": "integer"
                                                },
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "paid"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                "total_paid_cash": {
                                                    "type": "integer"
                                                },
                                                "total_paid_credits": {
                                                    "type": "integer"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Free item requires request workflow."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Item already owned."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                },
                                                "next_action": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "order_id",
                                                "payment_status",
                                                "payment_mode",
                                                "total_paid_cash",
                                                "total_paid_credits",
                                                "currency",
                                                "enrolled_items",
                                                "failed_items",
                                                "next_action"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "order_id": {
                                                    "type": "integer"
                                                },
                                                "credits_spent": {
                                                    "type": "integer"
                                                },
                                                "remaining_credits": {
                                                    "type": "integer"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Free item requires request workflow."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Item already owned."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                },
                                                "transaction_ref": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "order_id",
                                                "credits_spent",
                                                "remaining_credits",
                                                "enrolled_items",
                                                "failed_items",
                                                "transaction_ref"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "402": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Insufficient credits"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                },
                                                "credit_balance": {
                                                    "type": "integer"
                                                },
                                                "credit_required": {
                                                    "type": "integer"
                                                },
                                                "credit_shortfall": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code",
                                                "credit_balance",
                                                "credit_required",
                                                "credit_shortfall"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/confirm-normal": {
            "post": {
                "operationId": "checkout.confirmNormalPayment",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "transaction_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "gateway": {
                                        "type": "string",
                                        "maxLength": 40
                                    },
                                    "provider_reference": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "provider_payload": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "transaction_id",
                                    "gateway"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "paid"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "normal"
                                                },
                                                "gateway": {
                                                    "type": "string"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "total_paid_cash": {
                                                    "type": "number"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "transaction_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payment_status",
                                                "payment_mode",
                                                "gateway",
                                                "currency",
                                                "total_paid_cash",
                                                "enrolled_items",
                                                "failed_items",
                                                "transaction_id",
                                                "invoice"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "paid"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "normal"
                                                },
                                                "gateway": {
                                                    "type": "string"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "total_paid_cash": {
                                                    "type": "number"
                                                },
                                                "enrolled_items": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0,
                                                            "additionalItems": false
                                                        }
                                                    ]
                                                },
                                                "failed_items": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0,
                                                            "additionalItems": false
                                                        }
                                                    ]
                                                },
                                                "transaction_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "payment_status",
                                                "payment_mode",
                                                "gateway",
                                                "currency",
                                                "total_paid_cash",
                                                "enrolled_items",
                                                "failed_items",
                                                "transaction_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Transaction not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/offline": {
            "post": {
                "operationId": "checkout.offline",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payment_mode": {
                                        "type": "string",
                                        "enum": [
                                            "offline"
                                        ]
                                    },
                                    "quote_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "reference": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payment_proof": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 5120
                                    },
                                    "items": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            }
                                        }
                                    }
                                },
                                "required": [
                                    "payment_mode",
                                    "payment_proof"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "order_id": {
                                            "type": "integer"
                                        },
                                        "payment_mode": {
                                            "type": "string",
                                            "const": "offline"
                                        },
                                        "payment_status": {
                                            "type": "string",
                                            "const": "pending_approval"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "pending_approval"
                                        },
                                        "quote_id": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment submitted successfully and is pending admin approval."
                                        }
                                    },
                                    "required": [
                                        "order_id",
                                        "payment_mode",
                                        "payment_status",
                                        "status",
                                        "quote_id",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/pay-with-credits": {
            "post": {
                "operationId": "checkout.payWithCredits",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cart_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "idempotency_key": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 128
                                    },
                                    "items": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "order_id": {
                                                    "type": "integer"
                                                },
                                                "payment_status": {
                                                    "type": "string",
                                                    "const": "paid"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                "total_paid_cash": {
                                                    "type": "integer"
                                                },
                                                "total_paid_credits": {
                                                    "type": "integer"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Free item requires request workflow."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Item already owned."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                },
                                                "next_action": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "order_id",
                                                "payment_status",
                                                "payment_mode",
                                                "total_paid_cash",
                                                "total_paid_credits",
                                                "currency",
                                                "enrolled_items",
                                                "failed_items",
                                                "next_action"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "order_id": {
                                                    "type": "integer"
                                                },
                                                "credits_spent": {
                                                    "type": "integer"
                                                },
                                                "remaining_credits": {
                                                    "type": "integer"
                                                },
                                                "enrolled_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "failed_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Free item requires request workflow."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "item_type": {
                                                                        "type": "string"
                                                                    },
                                                                    "item_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "const": "Item already owned."
                                                                    }
                                                                },
                                                                "required": [
                                                                    "item_type",
                                                                    "item_id",
                                                                    "reason"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                },
                                                "transaction_ref": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "order_id",
                                                "credits_spent",
                                                "remaining_credits",
                                                "enrolled_items",
                                                "failed_items",
                                                "transaction_ref"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "402": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Insufficient credits"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "const": "insufficient_credits"
                                                },
                                                "credit_balance": {
                                                    "type": "integer"
                                                },
                                                "credit_required": {
                                                    "type": "integer"
                                                },
                                                "credit_shortfall": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "code",
                                                "credit_balance",
                                                "credit_required",
                                                "credit_shortfall"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/payment-gateways": {
            "get": {
                "operationId": "checkout.paymentGateways",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "gateways": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "default_gateway": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "gateways",
                                                "default_gateway"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "gateways": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "default_gateway": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "gateways",
                                                "default_gateway"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/payment-methods": {
            "get": {
                "operationId": "checkout.paymentMethods",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "available_methods": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "string",
                                                    "const": "credits"
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "offline"
                                                },
                                                {
                                                    "type": "string",
                                                    "const": "normal"
                                                }
                                            ],
                                            "minItems": 3,
                                            "maxItems": 3,
                                            "additionalItems": false
                                        },
                                        "credit_balance": {
                                            "type": "integer"
                                        },
                                        "eligibility": {
                                            "type": "object",
                                            "properties": {
                                                "credits": {
                                                    "type": "boolean"
                                                },
                                                "offline": {
                                                    "type": "boolean"
                                                },
                                                "normal": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "credits",
                                                "offline",
                                                "normal"
                                            ]
                                        },
                                        "offline_payment_bank_details": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        ""
                                                    ]
                                                }
                                            ]
                                        },
                                        "bank_information": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        ""
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "available_methods",
                                        "credit_balance",
                                        "eligibility",
                                        "offline_payment_bank_details",
                                        "bank_information"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/checkout/quote": {
            "post": {
                "operationId": "checkout.quote",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "cart_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "coupon_code": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "payment_mode": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "credits",
                                            "normal"
                                        ]
                                    },
                                    "items": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "course",
                                                        "ebook",
                                                        "bootcamp",
                                                        "live_class",
                                                        "tutor_schedule",
                                                        "team_training"
                                                    ]
                                                },
                                                "item_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "quantity": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "cart_id": {
                                            "type": "integer"
                                        },
                                        "currency": {
                                            "type": "string"
                                        },
                                        "subtotal": {
                                            "type": "number"
                                        },
                                        "discount_total": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "tax_total": {
                                            "type": "number"
                                        },
                                        "total_cash_due": {
                                            "type": "number"
                                        },
                                        "total_credits_due": {
                                            "type": "integer"
                                        },
                                        "credit_balance": {
                                            "type": "integer"
                                        },
                                        "credit_shortfall": {
                                            "type": "integer"
                                        },
                                        "can_pay_with_credits": {
                                            "type": "boolean"
                                        },
                                        "can_pay_with_normal": {
                                            "type": "boolean"
                                        },
                                        "lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "request_required_lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "validation_warnings": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "enum": [
                                                    "Free items require request workflow and are excluded from checkout totals.",
                                                    "Coupon not found or not applicable."
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "cart_id",
                                        "currency",
                                        "subtotal",
                                        "discount_total",
                                        "tax_total",
                                        "total_cash_due",
                                        "total_credits_due",
                                        "credit_balance",
                                        "credit_shortfall",
                                        "can_pay_with_credits",
                                        "can_pay_with_normal",
                                        "lines",
                                        "request_required_lines",
                                        "validation_warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/orders/{id}": {
            "get": {
                "operationId": "checkout.order",
                "tags": [
                    "[Student] APIs",
                    "Checkout"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Order not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "offline_payment"
                                                },
                                                "payment_mode": {
                                                    "type": "string",
                                                    "const": "offline"
                                                },
                                                "payment_status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "paid",
                                                        "rejected",
                                                        "pending_approval"
                                                    ]
                                                },
                                                "amount": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "details": {
                                                    "type": "object",
                                                    "properties": {
                                                        "item_type": {
                                                            "type": "string"
                                                        },
                                                        "items": {
                                                            "type": "string"
                                                        },
                                                        "reference": {
                                                            "type": "string"
                                                        },
                                                        "proof": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "item_type",
                                                        "items",
                                                        "reference",
                                                        "proof"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "source",
                                                "payment_mode",
                                                "payment_status",
                                                "amount",
                                                "currency",
                                                "details",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "unified_transaction"
                                                },
                                                "payment_mode": {
                                                    "type": "string"
                                                },
                                                "payment_status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "paid",
                                                        "failed",
                                                        "pending"
                                                    ]
                                                },
                                                "amount": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "provider_transaction_id": {
                                                    "type": "string"
                                                },
                                                "details": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "source",
                                                "payment_mode",
                                                "payment_status",
                                                "amount",
                                                "currency",
                                                "provider_transaction_id",
                                                "details",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/requests": {
            "post": {
                "operationId": "student.commerce.request.store",
                "tags": [
                    "[Student] APIs",
                    "Request"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "item_type": {
                                        "type": "string",
                                        "enum": [
                                            "course",
                                            "ebook",
                                            "bootcamp",
                                            "live_class",
                                            "tutor_schedule",
                                            "team_training"
                                        ]
                                    },
                                    "item_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "item_type",
                                    "item_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Item not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access already granted"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "student.commerce.request.index",
                "tags": [
                    "[Student] APIs",
                    "Request"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AccessRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/requests/from-cart": {
            "post": {
                "operationId": "request.fromCart",
                "tags": [
                    "[Student] APIs",
                    "Request"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Processed free-item requests from cart."
                                        },
                                        "created_count": {
                                            "type": "integer"
                                        },
                                        "skipped_count": {
                                            "type": "integer"
                                        },
                                        "created": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "item_type": {
                                                        "type": "string"
                                                    },
                                                    "item_id": {
                                                        "type": "integer"
                                                    },
                                                    "item_data": {
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": []
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "reason": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "requested_at": {
                                                        "type": "string"
                                                    },
                                                    "reviewed_at": {
                                                        "type": "string"
                                                    },
                                                    "reviewed_by": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "reviewer_role": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "item_type",
                                                    "item_id",
                                                    "item_data",
                                                    "status",
                                                    "reason",
                                                    "requested_at",
                                                    "reviewed_at",
                                                    "reviewed_by",
                                                    "reviewer_role",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        },
                                        "skipped": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "string"
                                                                    },
                                                                    {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "Paid item uses credit checkout flow."
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Unsupported item type for request workflow."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Access already granted."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "item_type": {
                                                                "type": "string"
                                                            },
                                                            "item_id": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "Item not found."
                                                            }
                                                        },
                                                        "required": [
                                                            "item_type",
                                                            "item_id",
                                                            "reason"
                                                        ]
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "created_count",
                                        "skipped_count",
                                        "created",
                                        "skipped"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/requests/{requestId}": {
            "get": {
                "operationId": "request.show",
                "tags": [
                    "[Student] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/requests/{requestId}/cancel": {
            "post": {
                "operationId": "request.cancel",
                "tags": [
                    "[Student] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/wishlist": {
            "get": {
                "operationId": "student.commerce.wishlist.myWishlist_0__get_v1_student_commerce_wishlist",
                "tags": [
                    "[Student] APIs",
                    "Wishlist"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "wishlist_item_id": {
                                                        "type": "integer"
                                                    },
                                                    "item_type": {
                                                        "type": "string"
                                                    },
                                                    "item_id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "added_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "wishlist_item_id",
                                                    "item_type",
                                                    "item_id",
                                                    "title",
                                                    "added_at"
                                                ]
                                            }
                                        },
                                        "count": {
                                            "type": "integer"
                                        },
                                        "legacy_courses": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "string"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "items",
                                        "count",
                                        "legacy_courses"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Please login first"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/commerce/wishlist/toggle": {
            "post": {
                "operationId": "student.commerce.wishlist.toggleWishlistItems_0__post_v1_student_commerce_wishlist_toggle",
                "tags": [
                    "[Student] APIs",
                    "Wishlist"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "removed"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "added"
                                                },
                                                "item_type": {
                                                    "type": "string",
                                                    "const": "team_training"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "item_type",
                                                "item_id"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Validation failed"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "item_type": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "item_type is invalid"
                                                        }
                                                    ],
                                                    "minItems": 1,
                                                    "maxItems": 1,
                                                    "additionalItems": false
                                                },
                                                "item_id": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "item_id is required"
                                                        }
                                                    ],
                                                    "minItems": 1,
                                                    "maxItems": 1,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "item_type",
                                                "item_id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Please login first"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/consultation/requests": {
            "get": {
                "operationId": "consultation.scholar.index",
                "summary": "List the authenticated scholar's consultation requests",
                "tags": [
                    "[Student] APIs",
                    "ConsultationRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ConsultationRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/consultation/requests/{id}/cancel": {
            "post": {
                "operationId": "consultation.scholar.cancel",
                "summary": "Cancel a pending consultation request",
                "tags": [
                    "[Student] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Consultation request cancelled."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found or already resolved."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/consultation/requests/{id}/pay": {
            "post": {
                "operationId": "consultation.scholar.pay",
                "description": "Deducts credits from the scholar's wallet (if cost > 0),\nthen materialises the TutorBooking, LiveClass, and MessageThread.",
                "summary": "Complete payment for a matched consultation request",
                "tags": [
                    "[Student] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking confirmed. Your session is ready."
                                        },
                                        "booking_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "live_class_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "booking_id",
                                        "live_class_id"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Insufficient credits. Please top up your wallet."
                                                },
                                                "cost_credits": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "cost_credits"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Booking already completed."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Request is not in matched state."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Consultation request not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/my": {
            "get": {
                "operationId": "student.courses.enrollment.myCourses_0__get_v1_student_courses_my",
                "description": "Returns paginated list of enrolled courses with progress information,\nexpiry dates, and lesson completion counts.",
                "summary": "Get all courses the student is enrolled in",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/my/{course_id}": {
            "delete": {
                "operationId": "student.courses.enrollment.dropCourse_0__delete_v1_student_courses_my_course_id",
                "description": "Removes the enrollment record, revoking student access to the course.",
                "summary": "Unenroll the student from a course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/progress": {
            "post": {
                "operationId": "student.courses.courseProgress.saveCourseProgress_0__post_v1_student_courses_progress",
                "description": "Updates the watch history for a lesson and returns updated course\ncompletion percentage for the authenticated student.",
                "summary": "Save course lesson progress for student",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/progress/sections": {
            "get": {
                "operationId": "student.courses.sections",
                "description": "Returns all sections within a course with associated lessons and\nprogress information for the authenticated user.",
                "summary": "Get course sections for authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/requests": {
            "get": {
                "operationId": "student.courses.courseRequest.myCourseRequests_0__get_v1_student_courses_requests",
                "description": "Returns all CourseRequest records for the current user, ordered by\nmost recently created first.",
                "summary": "Get all course access requests submitted by the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{courseId}/detailed-progress": {
            "get": {
                "operationId": "student.courses.courseProgress.detailedProgress_0__get_v1_student_courses_courseId_detailed_progress",
                "summary": "Get detailed per-section and per-lesson progress for a student course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{courseId}/lessons/progress": {
            "get": {
                "operationId": "student.courses.courseProgress.detailedProgress_0__get_v1_student_courses_courseId_lessons_progress",
                "summary": "Get detailed per-section and per-lesson progress for a student course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{courseId}/lessons/{lessonId}/complete": {
            "post": {
                "operationId": "student.courses.progress.completeLesson",
                "summary": "Mark a lesson as completed for a student course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "lessonId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "time_spent_seconds": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Lesson not found for this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{courseId}/progress": {
            "get": {
                "operationId": "student.courses.courseProgress.progress_0__get_v1_student_courses_courseId_progress",
                "summary": "Get progress summary for a student course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "course_id": {
                                            "type": "integer"
                                        },
                                        "total_lessons": {
                                            "type": "integer"
                                        },
                                        "completed_lessons": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "progress_percentage": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "last_accessed_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "course_id",
                                        "total_lessons",
                                        "completed_lessons",
                                        "progress_percentage",
                                        "last_accessed_at"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Course not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{courseId}/restart": {
            "post": {
                "operationId": "student.courses.progress.restart",
                "summary": "Restart a course by clearing student progress",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseProgress"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden: you are not enrolled in this course."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{course_id}/enroll-free": {
            "post": {
                "operationId": "student.courses.enrollment.freeCourseEnroll_0__post_v1_student_courses_course_id_enroll_free",
                "description": "Creates an enrollment record for a free course with no expiry date\n(lifetime access).",
                "summary": "Enroll the student in a free course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "Enrollment"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/courses/{id}/requests": {
            "post": {
                "operationId": "student.courses.courseRequest.requestCourse_0__post_v1_student_courses_id_requests",
                "description": "Creates a CourseRequest record with status \"Requested\". If the student\nalready has a pending request for the same course, a 200 is returned\nwithout creating a duplicate.",
                "summary": "Submit an access request for a specific course",
                "tags": [
                    "[Student] APIs",
                    "Student Courses",
                    "CourseRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/ebooks/my": {
            "get": {
                "operationId": "student.ebooks.ebook.myEbooks_0__get_v1_student_ebooks_my",
                "description": "Returns ebooks from the `ebook_gets` table that are linked to the\ncurrent user, ordered by newest first, paginated at 20 per page.",
                "summary": "Get the authenticated student's assigned ebooks (paginated)",
                "tags": [
                    "[Student] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/ebooks/release": {
            "post": {
                "operationId": "student.ebooks.ebook.releaseEbook_0__post_v1_student_ebooks_release",
                "description": "Removes an `ebook_gets` record, revoking the user's access to the\nebook.",
                "summary": "Release an ebook from the student's library",
                "tags": [
                    "[Student] APIs",
                    "Student Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_get_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "ebook_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/ebooks/requests": {
            "get": {
                "operationId": "student.ebooks.ebookRequest.myEbookRequests_0__get_v1_student_ebooks_requests",
                "description": "Returns ebook requests where the requesting user is the current\nauthenticated user and they don't already have access to the ebook.\nOrdered by newest first.",
                "summary": "Get the authenticated student's ebook requests",
                "tags": [
                    "[Student] APIs",
                    "Student Ebooks",
                    "EbookRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.ebooks.ebookRequest.requestEbook_1",
                "description": "Submits a request for an ebook. The request is created with status\n'Requested' and pending admin/instructor approval. Users cannot request\nthe same ebook twice if already pending, and cannot request ebooks they\nalready have access to.",
                "summary": "Create an ebook request",
                "tags": [
                    "[Student] APIs",
                    "Student Ebooks",
                    "EbookRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "ebook_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/instructor-application/apply": {
            "post": {
                "operationId": "student.auth.becomeInstructor.apply_0",
                "description": "Only one pending application per user is allowed. The endpoint\naccepts either an uploaded file (`document_file`) or a pre-uploaded\npath/URL (`document`) for backward compatibility.",
                "summary": "Submit an instructor application",
                "tags": [
                    "[Student] APIs",
                    "Instructor Application",
                    "BecomeInstructor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phone": {
                                        "type": "string",
                                        "maxLength": 30
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 2000
                                    },
                                    "document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "document_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    },
                                    "category_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    },
                                    "subject_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "maxItems": 10
                                    }
                                },
                                "required": [
                                    "phone",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/instructor-application/status": {
            "get": {
                "operationId": "student.auth.becomeInstructor.status_0",
                "description": "Returns the application if one exists, or null.",
                "summary": "Get the current user's application status",
                "tags": [
                    "[Student] APIs",
                    "Instructor Application",
                    "BecomeInstructor"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "has_application": {
                                            "type": "boolean"
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Application"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "has_application",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships": {
            "get": {
                "operationId": "student.internships.index",
                "summary": "List the authenticated student's internships",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Internship"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/applications": {
            "post": {
                "operationId": "student.internships.apply",
                "summary": "Submit an internship application",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "preferred_start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "duration_months": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 24
                                    },
                                    "statement": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "supporting_document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    },
                                    "vacancy_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Internship application submitted."
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InternshipApplication"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "quiz": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application",
                                        "quiz"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "student.internships.applications.index",
                "summary": "List internship applications submitted by the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InternshipApplication"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/applications/{applicationId}": {
            "put": {
                "operationId": "student.internships.applications.update",
                "summary": "Update internship application (only pending applications)",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "preferred_start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "duration_months": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 24
                                    },
                                    "statement": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "supporting_document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Internship application updated."
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InternshipApplication"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "quiz": {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "failed",
                                                                "not_started"
                                                            ]
                                                        },
                                                        "passed": {
                                                            "type": "boolean"
                                                        }
                                                    },
                                                    "required": [
                                                        "required",
                                                        "status",
                                                        "passed"
                                                    ]
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "const": "passed"
                                                        },
                                                        "passed": {
                                                            "type": "boolean"
                                                        }
                                                    },
                                                    "required": [
                                                        "required",
                                                        "status",
                                                        "passed"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application",
                                        "quiz"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/prospect": {
            "get": {
                "operationId": "student.internships.prospect",
                "summary": "Get the authenticated student's latest internship prospect (from careers registration)",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "prospect": {
                                                    "type": "object",
                                                    "properties": {
                                                        "vacancy_id": {
                                                            "type": "integer"
                                                        },
                                                        "internship_type": {
                                                            "type": "string"
                                                        },
                                                        "vacancy": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "vacancy_id",
                                                        "internship_type",
                                                        "vacancy"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prospect"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "prospect": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "prospect"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}": {
            "get": {
                "operationId": "student.internships.show",
                "summary": "Show internship details, assigned assessments, and progress summary",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "internship": {
                                            "$ref": "#/components/schemas/Internship"
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "internship": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "start_date": {
                                                            "type": "string"
                                                        },
                                                        "end_date": {
                                                            "type": "string"
                                                        },
                                                        "duration_months": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "status",
                                                        "start_date",
                                                        "end_date",
                                                        "duration_months"
                                                    ]
                                                },
                                                "daily_logs": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "total_hours": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "total_hours",
                                                        "items"
                                                    ]
                                                },
                                                "quizzes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "quiz_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "quiz_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "correct": {
                                                                                "type": "integer"
                                                                            },
                                                                            "wrong": {
                                                                                "type": "integer"
                                                                            },
                                                                            "total": {
                                                                                "type": "string"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            },
                                                                            "score_on_total": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "pass_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "passed": {
                                                                                "type": "boolean"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "correct",
                                                                            "wrong",
                                                                            "total",
                                                                            "percent",
                                                                            "score_on_total",
                                                                            "total_mark",
                                                                            "pass_mark",
                                                                            "passed"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "quiz_id",
                                                                    "quiz_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "assignments": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "assignment_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "assignment_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "marks",
                                                                            "total_marks",
                                                                            "percent"
                                                                        ]
                                                                    },
                                                                    "remarks": {
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "assignment_id",
                                                                    "assignment_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "remarks",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "overall": {
                                                    "type": "object",
                                                    "properties": {
                                                        "average_percent": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "average_percent"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "internship",
                                                "daily_logs",
                                                "quizzes",
                                                "assignments",
                                                "overall",
                                                "remarks"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "internship",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}/certificate": {
            "get": {
                "operationId": "internship.certificate",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "internship_id": {
                                                    "type": "integer"
                                                },
                                                "certificate": {
                                                    "type": "object",
                                                    "properties": {
                                                        "certificate_number": {
                                                            "type": "string"
                                                        },
                                                        "issued_at": {
                                                            "type": "string"
                                                        },
                                                        "issue_source": {
                                                            "type": "string"
                                                        },
                                                        "download_available": {
                                                            "type": "boolean"
                                                        }
                                                    },
                                                    "required": [
                                                        "certificate_number",
                                                        "issued_at",
                                                        "issue_source",
                                                        "download_available"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "internship_id",
                                                "certificate"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "internship_id": {
                                                    "type": "integer"
                                                },
                                                "certificate": {
                                                    "type": "null"
                                                }
                                            },
                                            "required": [
                                                "internship_id",
                                                "certificate"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}/certificate/download": {
            "get": {
                "operationId": "internship.downloadCertificate",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}/daily-logs": {
            "get": {
                "operationId": "student.internships.dailyLogs",
                "summary": "List daily logs for a student's internship",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InternshipDailyLog"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.internships.upsertDailyLog",
                "summary": "Create or update a daily activity log",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "log_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "activities": {
                                        "type": "string",
                                        "maxLength": 8000
                                    },
                                    "hours_logged": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 24
                                    },
                                    "comment": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                },
                                "required": [
                                    "log_date",
                                    "activities",
                                    "hours_logged"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Daily log saved."
                                        },
                                        "log": {
                                            "$ref": "#/components/schemas/InternshipDailyLog"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "log"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}/remarks": {
            "post": {
                "operationId": "student.internships.addRemark",
                "summary": "Add a student remark on internship performance",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "remark": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "remark"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Remark saved."
                                        },
                                        "remark": {
                                            "$ref": "#/components/schemas/InternshipRemark"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "remark"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/internships/{id}/report": {
            "get": {
                "operationId": "student.internships.report",
                "summary": "Get the internship report and summary for the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "internship": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "start_date": {
                                                            "type": "string"
                                                        },
                                                        "end_date": {
                                                            "type": "string"
                                                        },
                                                        "duration_months": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "status",
                                                        "start_date",
                                                        "end_date",
                                                        "duration_months"
                                                    ]
                                                },
                                                "daily_logs": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "total_hours": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "total_hours",
                                                        "items"
                                                    ]
                                                },
                                                "quizzes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "quiz_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "quiz_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "correct": {
                                                                                "type": "integer"
                                                                            },
                                                                            "wrong": {
                                                                                "type": "integer"
                                                                            },
                                                                            "total": {
                                                                                "type": "string"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            },
                                                                            "score_on_total": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "pass_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "passed": {
                                                                                "type": "boolean"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "correct",
                                                                            "wrong",
                                                                            "total",
                                                                            "percent",
                                                                            "score_on_total",
                                                                            "total_mark",
                                                                            "pass_mark",
                                                                            "passed"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "quiz_id",
                                                                    "quiz_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "assignments": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "assignment_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "assignment_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "marks",
                                                                            "total_marks",
                                                                            "percent"
                                                                        ]
                                                                    },
                                                                    "remarks": {
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "assignment_id",
                                                                    "assignment_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "remarks",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "overall": {
                                                    "type": "object",
                                                    "properties": {
                                                        "average_percent": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "average_percent"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "internship",
                                                "daily_logs",
                                                "quizzes",
                                                "assignments",
                                                "overall",
                                                "remarks"
                                            ]
                                        },
                                        "report": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InternshipReport"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "summary",
                                        "report"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/purchase-history": {
            "get": {
                "operationId": "student.billing.purchaseHistory.index_0",
                "description": "Returns paginated payment records with course details.",
                "summary": "List the authenticated student's purchase history",
                "tags": [
                    "[Student] APIs",
                    "Purchase History",
                    "PurchaseHistory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/purchase-history/{id}/invoice": {
            "get": {
                "operationId": "student.billing.purchaseHistory.invoice_0",
                "summary": "Get a single purchase invoice",
                "tags": [
                    "[Student] APIs",
                    "Purchase History",
                    "PurchaseHistory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "": {
                                                    "type": "string"
                                                },
                                                "user_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "user_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "source_type": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "enum": [
                                                                "course"
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                null,
                                                "user_name",
                                                "user_email",
                                                "source_type"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/quiz-categories/follows": {
            "get": {
                "operationId": "student.courses.quizCategoryFollow.index_0",
                "summary": "List followed quiz categories for current student",
                "tags": [
                    "[Student] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.courses.quizCategoryFollow.store_1",
                "summary": "Follow a quiz category",
                "tags": [
                    "[Student] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "quiz_category_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "quiz_category_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category followed successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_category_id": {
                                                    "type": "integer"
                                                },
                                                "category": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_category_id",
                                                "category"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/quiz-categories/follows/{categoryId}": {
            "delete": {
                "operationId": "student.courses.quizCategoryFollow.destroy_0",
                "summary": "Unfollow a quiz category",
                "tags": [
                    "[Student] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "parameters": [
                    {
                        "name": "categoryId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category unfollowed successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/quiz/questions": {
            "get": {
                "operationId": "student.courses.quiz.questions_0",
                "description": "Returns the quiz lesson metadata, its questions (with options but\nwithout correct answers), the student's past submissions, and the\nparent course details.",
                "summary": "Load quiz questions for a given quiz (lesson)",
                "tags": [
                    "[Student] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/quiz/result": {
            "get": {
                "operationId": "student.courses.quiz.result_0",
                "description": "Returns the quiz metadata, all questions with their correct answers,\nand the student's specific submission showing which answers were right\nor wrong.",
                "summary": "Load the result of a specific quiz submission",
                "tags": [
                    "[Student] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submission_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/quiz/submissions": {
            "get": {
                "operationId": "student.courses.quiz.submissions_0",
                "description": "Returns a paginated list across all quizzes, with optional filtering by\na specific quiz lesson ID.",
                "summary": "List quiz submissions for the authenticated student",
                "tags": [
                    "[Student] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "quiz_id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "correct_answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "wrong_answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "quiz": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "course_id": {
                                                                "type": "integer"
                                                            },
                                                            "total_mark": {
                                                                "type": "number"
                                                            },
                                                            "pass_mark": {
                                                                "type": "number"
                                                            },
                                                            "quiz_category": {
                                                                "type": [
                                                                    "object",
                                                                    "null"
                                                                ],
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string"
                                                                    },
                                                                    "title": {
                                                                        "type": "string"
                                                                    },
                                                                    "slug": {
                                                                        "type": "string"
                                                                    },
                                                                    "thumbnail": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "id",
                                                                    "title",
                                                                    "slug",
                                                                    "thumbnail"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "course_id",
                                                            "total_mark",
                                                            "pass_mark",
                                                            "quiz_category"
                                                        ]
                                                    },
                                                    "score": {
                                                        "type": "object",
                                                        "properties": {
                                                            "correct": {
                                                                "type": "integer"
                                                            },
                                                            "wrong": {
                                                                "type": "integer"
                                                            },
                                                            "total": {
                                                                "type": "string"
                                                            },
                                                            "percent": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "score_on_total": {
                                                                "type": "number"
                                                            },
                                                            "passed": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "correct",
                                                            "wrong",
                                                            "total",
                                                            "percent",
                                                            "score_on_total",
                                                            "passed"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "quiz_id",
                                                    "user_id",
                                                    "correct_answer",
                                                    "wrong_answer",
                                                    "created_at",
                                                    "updated_at",
                                                    "quiz",
                                                    "score"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/quiz/{id}/submit": {
            "post": {
                "operationId": "student.courses.quiz.submit_0",
                "description": "Accepts a map of `{ question_id: answer }` pairs. Validates each answer\nagainst the stored correct answer for MCQ, fill-in-the-blank, and\ntrue/false question types. Records a `QuizSubmission` with the results.\n\nRespects the retake limit configured on the quiz lesson \u2014 submissions\nbeyond the allowed attempts are rejected.",
                "summary": "Submit quiz answers",
                "tags": [
                    "[Student] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answers": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "answers"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/quizzes": {
            "get": {
                "operationId": "quizzes.browse",
                "description": "Returns quizzes from both the lessons table and the legacy quizzes table.\nOptionally filter by `course_id` (applies to lesson-quizzes only).\nDoes not expose correct answers.",
                "summary": "Browse all available quizzes",
                "tags": [
                    "[Student] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quizzes": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "quizzes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/referrals/history": {
            "get": {
                "operationId": "student.referrals.referral.history",
                "tags": [
                    "[Student] APIs",
                    "Referral"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "referee": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email"
                                                        ]
                                                    },
                                                    "trigger_type": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "credits_earned": {
                                                        "type": "integer"
                                                    },
                                                    "rewarded_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "referee",
                                                    "trigger_type",
                                                    "status",
                                                    "credits_earned",
                                                    "rewarded_at",
                                                    "created_at"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/referrals/summary": {
            "get": {
                "operationId": "student.referrals.referral.summary",
                "tags": [
                    "[Student] APIs",
                    "Referral"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string"
                                        },
                                        "share_url": {
                                            "type": "string"
                                        },
                                        "stats": {
                                            "type": "object",
                                            "properties": {
                                                "total_invited": {
                                                    "type": "string"
                                                },
                                                "total_rewarded": {
                                                    "type": "string"
                                                },
                                                "total_pending": {
                                                    "type": "string"
                                                },
                                                "credits_earned": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "total_invited",
                                                "total_rewarded",
                                                "total_pending",
                                                "credits_earned"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "share_url",
                                        "stats"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/reviews": {
            "get": {
                "operationId": "student.courses.review.index_0",
                "summary": "List reviews for a course",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter_star",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 5
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "newest",
                                "oldest",
                                "highest",
                                "lowest",
                                "most_helpful"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "reviews": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_name": {
                                                        "type": "string"
                                                    },
                                                    "user_photo": {
                                                        "type": "string"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "rating": {
                                                        "type": "integer"
                                                    },
                                                    "review": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_reply": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_replied_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "is_own": {
                                                        "type": "string"
                                                    },
                                                    "likes": {
                                                        "type": "integer"
                                                    },
                                                    "dislikes": {
                                                        "type": "integer"
                                                    },
                                                    "user_liked": {
                                                        "type": "boolean"
                                                    },
                                                    "user_disliked": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "user_name",
                                                    "user_photo",
                                                    "course_id",
                                                    "rating",
                                                    "review",
                                                    "instructor_reply",
                                                    "instructor_replied_at",
                                                    "created_at",
                                                    "updated_at",
                                                    "is_own",
                                                    "likes",
                                                    "dislikes",
                                                    "user_liked",
                                                    "user_disliked"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        },
                                        "average_rating": {
                                            "anyOf": [
                                                {
                                                    "type": "number"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "total_reviews": {
                                            "type": "integer"
                                        },
                                        "star_counts": {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "integer"
                                                }
                                            ],
                                            "minItems": 5,
                                            "maxItems": 5,
                                            "additionalItems": false
                                        },
                                        "user_review": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Review"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "reviews",
                                        "pagination",
                                        "average_rating",
                                        "total_reviews",
                                        "star_counts",
                                        "user_review"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.courses.review.store_1",
                "summary": "Create a course review",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreReviewRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/student/reviews/{id}": {
            "put": {
                "operationId": "student.courses.review.update_0",
                "summary": "Update an existing course review",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateReviewRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.courses.review.destroy_1",
                "summary": "Delete a course review",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/reviews/{id}/dislike": {
            "post": {
                "operationId": "student.courses.review.dislike_0",
                "summary": "Toggle dislike on a review",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "disliked"
                                        },
                                        "likes": {
                                            "type": "integer"
                                        },
                                        "dislikes": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "likes",
                                        "dislikes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/reviews/{id}/like": {
            "post": {
                "operationId": "student.courses.review.like_0",
                "summary": "Toggle like on a review",
                "tags": [
                    "[Student] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "const": "disliked"
                                        },
                                        "likes": {
                                            "type": "integer"
                                        },
                                        "dislikes": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "likes",
                                        "dislikes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/scholarships/applications": {
            "post": {
                "operationId": "scholarshipApplication.apply",
                "tags": [
                    "[Student] APIs",
                    "ScholarshipApplication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "statement": {
                                        "type": "string",
                                        "maxLength": 5000
                                    },
                                    "supporting_document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "statement"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Scholarship application submitted."
                                        },
                                        "application": {
                                            "$ref": "#/components/schemas/ScholarshipApplication"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "scholarshipApplication.myApplications",
                "tags": [
                    "[Student] APIs",
                    "ScholarshipApplication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ScholarshipApplication"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/scholarships/applications/{applicationId}": {
            "put": {
                "operationId": "scholarshipApplication.updateApplication",
                "tags": [
                    "[Student] APIs",
                    "ScholarshipApplication"
                ],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "statement": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "supporting_document": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Scholarship application updated."
                                        },
                                        "application": {
                                            "$ref": "#/components/schemas/ScholarshipApplication"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/support/tickets": {
            "get": {
                "operationId": "student.support.ticket.index_0",
                "description": "Students/instructors see their own tickets. Admins see all tickets,\noptionally filtered by status, priority, category, or search term.",
                "summary": "List tickets for the authenticated user",
                "tags": [
                    "[Student] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ticket"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.support.ticket.store_1",
                "description": "Creates the ticket and its initial message in one request.",
                "summary": "Create a new support ticket",
                "tags": [
                    "[Student] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "message": {
                                        "type": "string"
                                    },
                                    "priority_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "subject",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket created."
                                        },
                                        "ticket": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ticket"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "ticket"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/support/tickets/{code}": {
            "get": {
                "operationId": "student.support.ticket.show_0",
                "summary": "Get a single ticket with its full message thread",
                "tags": [
                    "[Student] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "ticket": {
                                            "$ref": "#/components/schemas/Ticket"
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "message": {
                                                        "type": "string"
                                                    },
                                                    "sender_id": {
                                                        "type": "integer"
                                                    },
                                                    "receiver_id": {
                                                        "type": "integer"
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "message",
                                                    "sender_id",
                                                    "receiver_id",
                                                    "file",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "ticket",
                                        "messages"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/support/tickets/{code}/reply": {
            "post": {
                "operationId": "student.support.ticket.reply_0",
                "summary": "Reply to a ticket thread",
                "tags": [
                    "[Student] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "message": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply sent."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessage"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings": {
            "post": {
                "operationId": "tutors.bookSlot",
                "summary": "Book a tutor slot using credits or free-request workflow",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "schedule_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "payment_mode": {
                                        "type": "string",
                                        "enum": [
                                            "credits",
                                            "free_request"
                                        ]
                                    },
                                    "idempotency_key": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 128
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "schedule_id",
                                    "payment_mode"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "booked"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "invoice": {
                                                            "type": "string"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "tutor_id": {
                                                            "type": "integer"
                                                        },
                                                        "student_id": {
                                                            "type": "integer"
                                                        },
                                                        "payment_method": {
                                                            "type": "string"
                                                        },
                                                        "price": {
                                                            "type": "number"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "start_time": {
                                                            "type": "integer"
                                                        },
                                                        "end_time": {
                                                            "type": "integer"
                                                        },
                                                        "created_at": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "invoice",
                                                        "schedule_id",
                                                        "tutor_id",
                                                        "student_id",
                                                        "payment_method",
                                                        "price",
                                                        "status",
                                                        "start_time",
                                                        "end_time",
                                                        "created_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "pending_approval"
                                                },
                                                "request_id": {
                                                    "type": "integer"
                                                },
                                                "item_type": {
                                                    "type": "string"
                                                },
                                                "item_id": {
                                                    "type": "integer"
                                                },
                                                "requested_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "request_id",
                                                "item_type",
                                                "item_id",
                                                "requested_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "string"
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Access already granted"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "402": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "code": {
                                            "type": "string",
                                            "const": "insufficient_credits"
                                        },
                                        "credit_balance": {
                                            "type": "integer"
                                        },
                                        "credit_required": {
                                            "type": "integer"
                                        },
                                        "credit_shortfall": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "code",
                                        "credit_balance",
                                        "credit_required",
                                        "credit_shortfall"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "student.tutor.tutorBooking.myBookings_1",
                "summary": "List student's bookings (upcoming + archived)",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "upcoming": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/TutorBooking"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        },
                                        "archived": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/TutorBooking"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "upcoming",
                                        "archived"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}": {
            "get": {
                "operationId": "tutors.bookingDetail",
                "summary": "Get tutor booking session detail",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "schedule_id": {
                                                    "type": "integer"
                                                },
                                                "live_class_id": {
                                                    "type": "integer"
                                                },
                                                "tutor_id": {
                                                    "type": "integer"
                                                },
                                                "student_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "integer"
                                                },
                                                "end_time": {
                                                    "type": "integer"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "instructor_joined_at": {
                                                    "type": "string"
                                                },
                                                "student_joined_at": {
                                                    "type": "string"
                                                },
                                                "delivered_at": {
                                                    "type": "string"
                                                },
                                                "student_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "auto_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "delivery_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancellation_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "tutor_name": {
                                                    "type": "string"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "subject_name": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "can_mark_delivered": {
                                                    "type": "string"
                                                },
                                                "can_confirm_delivery": {
                                                    "type": "string"
                                                },
                                                "can_review": {
                                                    "type": "string"
                                                },
                                                "can_cancel": {
                                                    "type": "string"
                                                },
                                                "timeline": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "confirmed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "in_progress"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "awaiting_confirmation"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "completed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "cancelled"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "schedule_id",
                                                "live_class_id",
                                                "tutor_id",
                                                "student_id",
                                                "invoice",
                                                "payment_method",
                                                "price",
                                                "status",
                                                "lifecycle_status",
                                                "start_time",
                                                "end_time",
                                                "confirmed_at",
                                                "instructor_joined_at",
                                                "student_joined_at",
                                                "delivered_at",
                                                "student_confirmed_at",
                                                "auto_confirmed_at",
                                                "delivery_notes",
                                                "cancellation_reason",
                                                "cancelled_at",
                                                "created_at",
                                                "tutor_name",
                                                "student_name",
                                                "subject_name",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "can_join",
                                                "can_mark_delivered",
                                                "can_confirm_delivery",
                                                "can_review",
                                                "can_cancel",
                                                "timeline"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "booking"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}/calendar.ics": {
            "get": {
                "operationId": "tutors.bookingCalendarExport",
                "summary": "Download a single booking as an ICS calendar file",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/calendar; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}/cancel": {
            "post": {
                "operationId": "tutors.cancelBooking",
                "summary": "Cancel an upcoming tutor booking and reopen the slot",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "cancelled"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "payment_method": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "cancellation_reason": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "schedule_id",
                                                        "payment_method",
                                                        "status",
                                                        "cancelled_at",
                                                        "cancellation_reason"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}/confirm-delivery": {
            "post": {
                "operationId": "tutors.confirmDelivery",
                "summary": "Confirm tutor session delivery (student sign-off)",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "completed"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "live_class_id": {
                                                            "type": "integer"
                                                        },
                                                        "tutor_id": {
                                                            "type": "integer"
                                                        },
                                                        "student_id": {
                                                            "type": "integer"
                                                        },
                                                        "invoice": {
                                                            "type": "string"
                                                        },
                                                        "payment_method": {
                                                            "type": "string"
                                                        },
                                                        "price": {
                                                            "type": "number"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "lifecycle_status": {
                                                            "type": "string"
                                                        },
                                                        "start_time": {
                                                            "type": "integer"
                                                        },
                                                        "end_time": {
                                                            "type": "integer"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "instructor_joined_at": {
                                                            "type": "string"
                                                        },
                                                        "student_joined_at": {
                                                            "type": "string"
                                                        },
                                                        "delivered_at": {
                                                            "type": "string"
                                                        },
                                                        "student_confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "auto_confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "delivery_notes": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "cancellation_reason": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "created_at": {
                                                            "type": "string"
                                                        },
                                                        "tutor_name": {
                                                            "type": "string"
                                                        },
                                                        "student_name": {
                                                            "type": "string"
                                                        },
                                                        "subject_name": {
                                                            "type": "string"
                                                        },
                                                        "has_meeting_link": {
                                                            "type": "boolean"
                                                        },
                                                        "session_topic": {
                                                            "type": "string"
                                                        },
                                                        "session_note": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "can_join": {
                                                            "type": "string"
                                                        },
                                                        "can_mark_delivered": {
                                                            "type": "string"
                                                        },
                                                        "can_confirm_delivery": {
                                                            "type": "string"
                                                        },
                                                        "can_review": {
                                                            "type": "string"
                                                        },
                                                        "can_cancel": {
                                                            "type": "string"
                                                        },
                                                        "timeline": {
                                                            "type": "array",
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "confirmed"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "in_progress"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "awaiting_confirmation"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "completed"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "cancelled"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "schedule_id",
                                                        "live_class_id",
                                                        "tutor_id",
                                                        "student_id",
                                                        "invoice",
                                                        "payment_method",
                                                        "price",
                                                        "status",
                                                        "lifecycle_status",
                                                        "start_time",
                                                        "end_time",
                                                        "confirmed_at",
                                                        "instructor_joined_at",
                                                        "student_joined_at",
                                                        "delivered_at",
                                                        "student_confirmed_at",
                                                        "auto_confirmed_at",
                                                        "delivery_notes",
                                                        "cancellation_reason",
                                                        "cancelled_at",
                                                        "created_at",
                                                        "tutor_name",
                                                        "student_name",
                                                        "subject_name",
                                                        "has_meeting_link",
                                                        "session_topic",
                                                        "session_note",
                                                        "can_join",
                                                        "can_mark_delivered",
                                                        "can_confirm_delivery",
                                                        "can_review",
                                                        "can_cancel",
                                                        "timeline"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}/invoice": {
            "get": {
                "operationId": "student.tutor.tutorBooking.bookingInvoice_0",
                "summary": "Get booking invoice",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "invoice": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/TutorBooking"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "invoice"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/bookings/{id}/join": {
            "get": {
                "operationId": "student.tutor.tutorBooking.joinClass_0",
                "summary": "Get Zoom join credentials for a booked tutor session",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking_id": {
                                            "type": "integer"
                                        },
                                        "booking": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "schedule_id": {
                                                    "type": "integer"
                                                },
                                                "live_class_id": {
                                                    "type": "integer"
                                                },
                                                "tutor_id": {
                                                    "type": "integer"
                                                },
                                                "student_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "integer"
                                                },
                                                "end_time": {
                                                    "type": "integer"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "instructor_joined_at": {
                                                    "type": "string"
                                                },
                                                "student_joined_at": {
                                                    "type": "string"
                                                },
                                                "delivered_at": {
                                                    "type": "string"
                                                },
                                                "student_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "auto_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "delivery_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancellation_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "tutor_name": {
                                                    "type": "string"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "subject_name": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "can_mark_delivered": {
                                                    "type": "string"
                                                },
                                                "can_confirm_delivery": {
                                                    "type": "string"
                                                },
                                                "can_review": {
                                                    "type": "string"
                                                },
                                                "can_cancel": {
                                                    "type": "string"
                                                },
                                                "timeline": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "confirmed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "in_progress"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "awaiting_confirmation"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "completed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "cancelled"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "schedule_id",
                                                "live_class_id",
                                                "tutor_id",
                                                "student_id",
                                                "invoice",
                                                "payment_method",
                                                "price",
                                                "status",
                                                "lifecycle_status",
                                                "start_time",
                                                "end_time",
                                                "confirmed_at",
                                                "instructor_joined_at",
                                                "student_joined_at",
                                                "delivered_at",
                                                "student_confirmed_at",
                                                "auto_confirmed_at",
                                                "delivery_notes",
                                                "cancellation_reason",
                                                "cancelled_at",
                                                "created_at",
                                                "tutor_name",
                                                "student_name",
                                                "subject_name",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "can_join",
                                                "can_mark_delivered",
                                                "can_confirm_delivery",
                                                "can_review",
                                                "can_cancel",
                                                "timeline"
                                            ]
                                        },
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": [],
                                        "meeting_password": [],
                                        "join_url": [],
                                        "live_class_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "booking_id",
                                        "booking",
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "join_url",
                                        "live_class_id",
                                        "signature_endpoint"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This session has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/reviews": {
            "post": {
                "operationId": "student.tutor.tutorBooking.submitReview_0",
                "summary": "Submit or update a tutor review",
                "tags": [
                    "[Student] APIs",
                    "TutorBooking"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tutor_id": {
                                        "type": "integer"
                                    },
                                    "booking_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "rating": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 5
                                    },
                                    "review": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "rating"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Review submitted."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/TutorReview"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/time-requests": {
            "get": {
                "operationId": "tutors.myTimeRequests",
                "summary": "List the current student's time requests",
                "tags": [
                    "[Student] APIs",
                    "TutorTimeRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorTimeRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "tutors.proposeTime",
                "summary": "Propose a custom session time to an instructor",
                "tags": [
                    "[Student] APIs",
                    "TutorTimeRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tutor_id": {
                                        "type": "integer"
                                    },
                                    "proposed_start": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "proposed_end": {
                                        "type": "integer"
                                    },
                                    "message": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "tutor_id",
                                    "proposed_start",
                                    "proposed_end"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Time request submitted. The tutor will be notified."
                                        },
                                        "time_request": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "time_request"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Tutor not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/student/tutor/time-requests/{id}/cancel": {
            "post": {
                "operationId": "tutors.cancelTimeRequest",
                "summary": "Cancel a pending time request (student only)",
                "tags": [
                    "[Student] APIs",
                    "TutorTimeRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Time request cancelled."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found or already resolved."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals/instructor/settings": {
            "get": {
                "operationId": "instructorReferralSettings.show",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorReferralSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "settings": {
                                            "$ref": "#/components/schemas/InstructorReferralProgramSetting"
                                        }
                                    },
                                    "required": [
                                        "settings"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructorReferralSettings.update",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorReferralSettings"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "enabled": {
                                        "type": "boolean"
                                    },
                                    "trigger_type": {
                                        "type": "string",
                                        "enum": [
                                            "signup",
                                            "first_purchase",
                                            "subscription"
                                        ]
                                    },
                                    "referrer_amount": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1000000
                                    },
                                    "referee_credits": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 100000
                                    },
                                    "min_purchase_amount": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "require_email_verified": {
                                        "type": "boolean"
                                    },
                                    "code_prefix": {
                                        "type": "string",
                                        "maxLength": 20
                                    },
                                    "currency": {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 3
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Instructor referral settings updated"
                                        },
                                        "settings": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InstructorReferralProgramSetting"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "settings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/announcements": {
            "get": {
                "operationId": "instructor.announcements.index",
                "summary": "List instructor announcements",
                "tags": [
                    "[Instructor] APIs",
                    "Announcement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/LengthAwarePaginator"
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "from": {
                                                    "type": "null"
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "per_page": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": "null"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "from",
                                                "last_page",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/blogs": {
            "get": {
                "operationId": "instructor.content.blog.manage_0",
                "summary": "List blog posts for management (admin sees all, instructor sees own)",
                "tags": [
                    "[Instructor] APIs",
                    "Blog"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Blog"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.content.blog.store_1",
                "description": "Admin posts are published immediately (status=1).\nInstructor posts are pending approval (status=0).",
                "summary": "Create a blog post (admin or instructor)",
                "tags": [
                    "[Instructor] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "is_popular": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "category_id",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post created."
                                        },
                                        "blog": {
                                            "$ref": "#/components/schemas/Blog"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "blog"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/blogs/{id}": {
            "put": {
                "operationId": "instructor.content.blog.update_0",
                "summary": "Update a blog post",
                "tags": [
                    "[Instructor] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "is_popular": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post updated."
                                        },
                                        "blog": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "blog"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.content.blog.destroy_1",
                "summary": "Delete a blog post (admin or own post for instructor)",
                "tags": [
                    "[Instructor] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/bootcamps": {
            "get": {
                "operationId": "instructorBootcamp.index",
                "summary": "List bootcamps owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorBootcamp"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Bootcamp"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "bootcamps.store",
                "summary": "Store a newly created bootcamp for the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorBootcamp"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "required": [
                                    "title",
                                    "description",
                                    "category_id",
                                    "is_paid"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp created successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/bootcamps/{id}": {
            "get": {
                "operationId": "instructorBootcamp.show",
                "summary": "Show one instructor-owned bootcamp",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "bootcamps.update",
                "description": "PUT supports partial update; all fields below are optional.",
                "summary": "Update one instructor-owned bootcamp",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ]
                                    },
                                    "discount_flag": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp updated successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "bootcamps.destroy",
                "summary": "Delete one instructor-owned bootcamp",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/commerce/my-requests": {
            "get": {
                "operationId": "request.myRequests",
                "tags": [
                    "[Instructor] APIs",
                    "Request"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.commerce.request.store",
                "tags": [
                    "[Instructor] APIs",
                    "Request"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/commerce/requests": {
            "get": {
                "operationId": "instructor.commerce.request.index_0",
                "tags": [
                    "[Instructor] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "item_type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "user_id": {
                                                "type": "integer"
                                            },
                                            "requester_id": {
                                                "type": "integer"
                                            },
                                            "requester_name": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "item_type": {
                                                "type": "string"
                                            },
                                            "item_id": {
                                                "type": "integer"
                                            },
                                            "item_data": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": []
                                            },
                                            "status": {
                                                "type": "string"
                                            },
                                            "reason": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "requested_at": {
                                                "type": "string"
                                            },
                                            "reviewed_at": {
                                                "type": "string"
                                            },
                                            "reviewed_by": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ]
                                            },
                                            "reviewer_role": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "created_at": {
                                                "type": "string"
                                            },
                                            "updated_at": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "user_id",
                                            "requester_id",
                                            "requester_name",
                                            "item_type",
                                            "item_id",
                                            "item_data",
                                            "status",
                                            "reason",
                                            "requested_at",
                                            "reviewed_at",
                                            "reviewed_by",
                                            "reviewer_role",
                                            "created_at",
                                            "updated_at"
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/commerce/requests/{requestId}/approve": {
            "post": {
                "operationId": "instructor.commerce.request.approve_0",
                "tags": [
                    "[Instructor] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/commerce/requests/{requestId}/reject": {
            "post": {
                "operationId": "instructor.commerce.request.reject_0",
                "tags": [
                    "[Instructor] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/consultation/requests": {
            "get": {
                "operationId": "consultation.expert.index",
                "summary": "List open consultation requests that were broadcast to this expert",
                "tags": [
                    "[Instructor] APIs",
                    "ConsultationRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ConsultationRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/consultation/requests/{id}/accept": {
            "post": {
                "operationId": "consultation.expert.accept",
                "summary": "Accept a consultation request (race-to-accept: first wins)",
                "tags": [
                    "[Instructor] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You have been matched with the scholar. Awaiting their payment."
                                        },
                                        "consultation_request_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "topic": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "preferred_start": {
                                            "type": "integer"
                                        },
                                        "preferred_end": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "consultation_request_id",
                                        "status",
                                        "topic",
                                        "preferred_start",
                                        "preferred_end"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/consultation/requests/{id}/decline": {
            "post": {
                "operationId": "consultation.expert.decline",
                "summary": "Decline a consultation request (other experts may still accept it)",
                "tags": [
                    "[Instructor] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request declined."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/course-categories": {
            "get": {
                "operationId": "instructorCourseCategory.index",
                "summary": "List all course categories",
                "tags": [
                    "[Instructor] APIs",
                    "Course Categories (Admin)",
                    "InstructorCourseCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Category"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructorCourseCategory.store",
                "summary": "Create a course category",
                "tags": [
                    "[Instructor] APIs",
                    "Course Categories (Admin)",
                    "InstructorCourseCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/course-categories/{id}": {
            "put": {
                "operationId": "instructorCourseCategory.update",
                "summary": "Update a course category",
                "tags": [
                    "[Instructor] APIs",
                    "Course Categories (Admin)",
                    "InstructorCourseCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructorCourseCategory.destroy",
                "summary": "Delete a course category",
                "tags": [
                    "[Instructor] APIs",
                    "Course Categories (Admin)",
                    "InstructorCourseCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses": {
            "get": {
                "operationId": "instructor.courses.index",
                "description": "Supports filters: `status`, `category_id`, `search`, `per_page`.",
                "summary": "List courses owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Course"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.courses.store",
                "summary": "Create a new course owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "course_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "general",
                                            "scorm"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "draft",
                                            "active",
                                            "pending",
                                            "rejected",
                                            "private",
                                            "upcoming",
                                            "inactive"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_best": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "level": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "everyone",
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ]
                                    },
                                    "language": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "enable_drip_content": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "expiry_period": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    }
                                },
                                "required": [
                                    "title",
                                    "category_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/assignments": {
            "get": {
                "operationId": "assignmentManagement.index",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "questions": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "question_file": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "total_marks": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "deadline": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "note": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "submission_count": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "title",
                                                    "questions",
                                                    "question_file",
                                                    "total_marks",
                                                    "deadline",
                                                    "note",
                                                    "status",
                                                    "created_at",
                                                    "updated_at",
                                                    "submission_count"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "assignmentManagement.store",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "questions": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "question_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "question_file_upload": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 20480
                                    },
                                    "total_marks": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "deadline": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "status": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "total_marks"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment created."
                                        },
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "assignment"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/assignments/{id}": {
            "get": {
                "operationId": "assignmentManagement.show",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "assignment"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "assignmentManagement.update",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "questions": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "question_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "question_file_upload": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 20480
                                    },
                                    "total_marks": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "deadline": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "status": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment updated."
                                        },
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "assignment"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "assignmentManagement.destroy",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/assignments/{id}/submissions": {
            "get": {
                "operationId": "assignmentManagement.submissions",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "assignment_id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "note": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "marks": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "remarks": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "user": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "photo"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "assignment_id",
                                                    "user_id",
                                                    "answer",
                                                    "file",
                                                    "note",
                                                    "marks",
                                                    "remarks",
                                                    "status",
                                                    "created_at",
                                                    "updated_at",
                                                    "user"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "assignment",
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/assignments/{id}/submissions/{submissionId}": {
            "get": {
                "operationId": "assignmentManagement.showSubmission",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        },
                                        "submission": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "assignment_id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "answer": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "photo"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "assignment_id",
                                                "user_id",
                                                "answer",
                                                "file",
                                                "note",
                                                "marks",
                                                "remarks",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "assignment",
                                        "submission"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "assignmentManagement.gradeSubmission",
                "tags": [
                    "[Instructor] APIs",
                    "Course Assignments (Instructor)",
                    "AssignmentManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "marks": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "remarks": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "status": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Submission updated."
                                        },
                                        "assignment": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "questions": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "question_file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "deadline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "submission_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "questions",
                                                "question_file",
                                                "total_marks",
                                                "deadline",
                                                "note",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "submission_count"
                                            ]
                                        },
                                        "submission": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "assignment_id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "answer": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "file": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "marks": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "photo"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "assignment_id",
                                                "user_id",
                                                "answer",
                                                "file",
                                                "note",
                                                "marks",
                                                "remarks",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "assignment",
                                        "submission"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/sections": {
            "get": {
                "operationId": "sectionManagement.index",
                "summary": "List sections for an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Sections (Instructor)",
                    "SectionManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "sections": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "sort": {
                                                        "type": "integer"
                                                    },
                                                    "lesson_count": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "title",
                                                    "sort",
                                                    "lesson_count",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "sections"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "sectionManagement.store",
                "summary": "Create a section for an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Sections (Instructor)",
                    "SectionManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Section created."
                                        },
                                        "section": {
                                            "$ref": "#/components/schemas/Section"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "section"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/sections/{id}": {
            "get": {
                "operationId": "sectionManagement.show",
                "summary": "Show a section for an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Sections (Instructor)",
                    "SectionManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "section": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "sort",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "lessons": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "section_id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "lesson_type": {
                                                        "type": "string"
                                                    },
                                                    "duration": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "sort": {
                                                        "type": "integer"
                                                    },
                                                    "status": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "section_id",
                                                    "title",
                                                    "lesson_type",
                                                    "duration",
                                                    "sort",
                                                    "status"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "section",
                                        "lessons"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "sectionManagement.update",
                "summary": "Update a section belonging to an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Sections (Instructor)",
                    "SectionManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "sort": {
                                        "type": "integer",
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Section updated."
                                        },
                                        "section": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Section"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "section"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "sectionManagement.destroy",
                "summary": "Delete a section and all lessons inside it",
                "tags": [
                    "[Instructor] APIs",
                    "Course Sections (Instructor)",
                    "SectionManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Section deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/sections/{sectionId}/lessons": {
            "get": {
                "operationId": "lessonManagement.index",
                "summary": "List lessons for a section in an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Lessons (Instructor)",
                    "LessonManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "section": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "sort"
                                            ]
                                        },
                                        "lessons": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": "integer"
                                                    },
                                                    "section_id": {
                                                        "type": "integer"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "lesson_type": {
                                                        "type": "string"
                                                    },
                                                    "duration": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "lesson_src": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "attachment": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "attachment_type": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "video_type": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_free": {
                                                        "type": "integer"
                                                    },
                                                    "sort": {
                                                        "type": "integer"
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "summary": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "total_mark": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "pass_mark": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "retake": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "section_id",
                                                    "title",
                                                    "lesson_type",
                                                    "duration",
                                                    "lesson_src",
                                                    "attachment",
                                                    "attachment_type",
                                                    "video_type",
                                                    "thumbnail",
                                                    "is_free",
                                                    "sort",
                                                    "description",
                                                    "summary",
                                                    "status",
                                                    "total_mark",
                                                    "pass_mark",
                                                    "retake",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "section",
                                        "lessons"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "lessonManagement.store",
                "summary": "Create a lesson in a section of an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Lessons (Instructor)",
                    "LessonManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Lesson created."
                                        },
                                        "lesson": {
                                            "$ref": "#/components/schemas/Lesson"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "lesson"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{courseId}/sections/{sectionId}/lessons/{id}": {
            "get": {
                "operationId": "lessonManagement.show",
                "summary": "Show a lesson in a section of an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Lessons (Instructor)",
                    "LessonManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "section": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "title",
                                                "sort"
                                            ]
                                        },
                                        "lesson": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": "integer"
                                                },
                                                "section_id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "lesson_type": {
                                                    "type": "string"
                                                },
                                                "duration": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "lesson_src": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "attachment": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "attachment_type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_free": {
                                                    "type": "integer"
                                                },
                                                "sort": {
                                                    "type": "integer"
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "total_mark": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "pass_mark": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "retake": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "section_id",
                                                "title",
                                                "lesson_type",
                                                "duration",
                                                "lesson_src",
                                                "attachment",
                                                "attachment_type",
                                                "video_type",
                                                "thumbnail",
                                                "is_free",
                                                "sort",
                                                "description",
                                                "summary",
                                                "status",
                                                "total_mark",
                                                "pass_mark",
                                                "retake",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "section",
                                        "lesson"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "lessonManagement.update",
                "summary": "Update a lesson in a section of an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Lessons (Instructor)",
                    "LessonManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Lesson updated."
                                        },
                                        "lesson": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Lesson"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "lesson"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "lessonManagement.destroy",
                "summary": "Delete a lesson in a section of an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Lessons (Instructor)",
                    "LessonManagement"
                ],
                "parameters": [
                    {
                        "name": "courseId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Lesson deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{id}": {
            "get": {
                "operationId": "instructor.courses.show",
                "summary": "Show a single instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.courses.update",
                "summary": "Update an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "course_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "general",
                                            "scorm"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "draft",
                                            "active",
                                            "pending",
                                            "rejected",
                                            "private",
                                            "upcoming",
                                            "inactive"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_best": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "level": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "everyone",
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ]
                                    },
                                    "language": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "enable_drip_content": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "expiry_period": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.courses.destroy",
                "description": "Only the course creator (user_id) can delete; co-instructors cannot.",
                "summary": "Delete an instructor-owned course",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/courses/{id}/submit": {
            "post": {
                "operationId": "instructor.courses.submit",
                "summary": "Submit a draft course for admin review (sets status to pending)",
                "tags": [
                    "[Instructor] APIs",
                    "Course Management (Instructor)",
                    "InstructorCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebook-categories": {
            "get": {
                "operationId": "instructorEbookCategory.index",
                "summary": "List ebook categories",
                "tags": [
                    "[Instructor] APIs",
                    "Admin Ebooks",
                    "InstructorEbookCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/EbookCategory"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructorEbookCategory.store",
                "summary": "Create a new ebook category",
                "tags": [
                    "[Instructor] APIs",
                    "Admin Ebooks",
                    "InstructorEbookCategory"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/EbookCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebook-categories/{id}": {
            "get": {
                "operationId": "instructorEbookCategory.show",
                "summary": "Show one ebook category",
                "tags": [
                    "[Instructor] APIs",
                    "Admin Ebooks",
                    "InstructorEbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructorEbookCategory.update",
                "summary": "Update an ebook category",
                "tags": [
                    "[Instructor] APIs",
                    "Admin Ebooks",
                    "InstructorEbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructorEbookCategory.destroy",
                "summary": "Delete an ebook category",
                "tags": [
                    "[Instructor] APIs",
                    "Admin Ebooks",
                    "InstructorEbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks": {
            "get": {
                "operationId": "instructor.ebooks.index",
                "summary": "List ebooks created by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ebook"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.ebooks.store",
                "summary": "Create an ebook owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "category_id",
                                    "is_paid"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook created successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks/assign": {
            "post": {
                "operationId": "instructor.ebooks.assign",
                "description": "Creates an `ebook_gets` record granting the specified user access to\nthe ebook. Instructors can assign ebooks to their students.",
                "summary": "Assign an ebook to a user",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_id": {
                                        "type": "integer"
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "ebook_id",
                                    "user_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks/requests": {
            "get": {
                "operationId": "instructor.ebookrequests.index",
                "description": "Returns all ebook requests with status = 'Requested', paginated at 20\nper page, ordered by newest first. Includes request details and user\ninformation.",
                "summary": "Get all pending ebook requests",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "EbookRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks/requests/{id}/approve": {
            "post": {
                "operationId": "instructor.ebookrequests.approve",
                "description": "Approves an ebook request by moving the ebook to the user's library\nand updating the request status to 'Approved'.",
                "summary": "Approve an ebook request",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "EbookRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks/requests/{id}/reject": {
            "post": {
                "operationId": "instructor.ebookrequests.reject",
                "description": "Rejects an ebook request by updating its status to 'Rejected'.",
                "summary": "Reject an ebook request",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "EbookRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/ebooks/{id}": {
            "get": {
                "operationId": "instructor.ebooks.show",
                "summary": "Show one ebook owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.ebooks.ebook.update_1",
                "summary": "Update one ebook owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook updated successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.ebooks.ebook.update_2",
                "summary": "Update one ebook owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook updated successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.ebooks.destroy",
                "summary": "Delete one ebook owned by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships": {
            "get": {
                "operationId": "instructor.internships.index",
                "summary": "List internships supervised by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Internship"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}": {
            "get": {
                "operationId": "instructor.internships.show",
                "summary": "Show internship details and summary for a supervisor",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "internship": {
                                            "$ref": "#/components/schemas/Internship"
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "internship": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "start_date": {
                                                            "type": "string"
                                                        },
                                                        "end_date": {
                                                            "type": "string"
                                                        },
                                                        "duration_months": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "status",
                                                        "start_date",
                                                        "end_date",
                                                        "duration_months"
                                                    ]
                                                },
                                                "daily_logs": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "total_hours": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "total_hours",
                                                        "items"
                                                    ]
                                                },
                                                "quizzes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "quiz_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "quiz_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "correct": {
                                                                                "type": "integer"
                                                                            },
                                                                            "wrong": {
                                                                                "type": "integer"
                                                                            },
                                                                            "total": {
                                                                                "type": "string"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            },
                                                                            "score_on_total": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "pass_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "passed": {
                                                                                "type": "boolean"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "correct",
                                                                            "wrong",
                                                                            "total",
                                                                            "percent",
                                                                            "score_on_total",
                                                                            "total_mark",
                                                                            "pass_mark",
                                                                            "passed"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "quiz_id",
                                                                    "quiz_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "assignments": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "assignment_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "assignment_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "marks",
                                                                            "total_marks",
                                                                            "percent"
                                                                        ]
                                                                    },
                                                                    "remarks": {
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "assignment_id",
                                                                    "assignment_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "remarks",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "overall": {
                                                    "type": "object",
                                                    "properties": {
                                                        "average_percent": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "average_percent"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "internship",
                                                "daily_logs",
                                                "quizzes",
                                                "assignments",
                                                "overall",
                                                "remarks"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "internship",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/assignments": {
            "post": {
                "operationId": "instructor.internships.assignAssignment",
                "summary": "Assign an assignment to an intern",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "assignment_id": {
                                        "type": "integer"
                                    },
                                    "due_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                },
                                "required": [
                                    "assignment_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Assignment assigned to intern."
                                        },
                                        "assignment_link": {
                                            "$ref": "#/components/schemas/InternshipAssignmentLink"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "assignment_link"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/daily-logs": {
            "get": {
                "operationId": "instructor.internships.dailyLogs",
                "summary": "List student daily logs for an internship",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InternshipDailyLog"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/quizzes": {
            "post": {
                "operationId": "instructor.internships.assignQuiz",
                "summary": "Assign a quiz lesson to an intern",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "quiz_id": {
                                        "type": "integer"
                                    },
                                    "due_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                },
                                "required": [
                                    "quiz_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz assigned to intern."
                                        },
                                        "quiz_link": {
                                            "$ref": "#/components/schemas/InternshipQuizLink"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "quiz_link"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/remarks": {
            "post": {
                "operationId": "instructor.internships.addRemark",
                "summary": "Add a supervisor remark to an internship",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "remark": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "remark"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Remark saved."
                                        },
                                        "remark": {
                                            "$ref": "#/components/schemas/InternshipRemark"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "remark"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/report": {
            "get": {
                "operationId": "instructor.internships.report",
                "summary": "Get internship report summary and approval status",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "internship": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "start_date": {
                                                            "type": "string"
                                                        },
                                                        "end_date": {
                                                            "type": "string"
                                                        },
                                                        "duration_months": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "status",
                                                        "start_date",
                                                        "end_date",
                                                        "duration_months"
                                                    ]
                                                },
                                                "daily_logs": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "total_hours": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "total_hours",
                                                        "items"
                                                    ]
                                                },
                                                "quizzes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "quiz_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "quiz_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "correct": {
                                                                                "type": "integer"
                                                                            },
                                                                            "wrong": {
                                                                                "type": "integer"
                                                                            },
                                                                            "total": {
                                                                                "type": "string"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            },
                                                                            "score_on_total": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "pass_mark": {
                                                                                "type": "number"
                                                                            },
                                                                            "passed": {
                                                                                "type": "boolean"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "correct",
                                                                            "wrong",
                                                                            "total",
                                                                            "percent",
                                                                            "score_on_total",
                                                                            "total_mark",
                                                                            "pass_mark",
                                                                            "passed"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "quiz_id",
                                                                    "quiz_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "assignments": {
                                                    "type": "object",
                                                    "properties": {
                                                        "count": {
                                                            "type": "integer"
                                                        },
                                                        "average_percent": {
                                                            "type": "number"
                                                        },
                                                        "items": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "assignment_id": {
                                                                        "type": "string"
                                                                    },
                                                                    "assignment_title": {
                                                                        "type": "string"
                                                                    },
                                                                    "has_submission": {
                                                                        "type": "boolean"
                                                                    },
                                                                    "score": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "total_marks": {
                                                                                "type": "number"
                                                                            },
                                                                            "percent": {
                                                                                "type": "number"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "marks",
                                                                            "total_marks",
                                                                            "percent"
                                                                        ]
                                                                    },
                                                                    "remarks": {
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ]
                                                                    },
                                                                    "submitted_at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "assignment_id",
                                                                    "assignment_title",
                                                                    "has_submission",
                                                                    "score",
                                                                    "remarks",
                                                                    "submitted_at"
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "count",
                                                        "average_percent",
                                                        "items"
                                                    ]
                                                },
                                                "overall": {
                                                    "type": "object",
                                                    "properties": {
                                                        "average_percent": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "average_percent"
                                                    ]
                                                },
                                                "remarks": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "internship",
                                                "daily_logs",
                                                "quizzes",
                                                "assignments",
                                                "overall",
                                                "remarks"
                                            ]
                                        },
                                        "report": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InternshipReport"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "summary",
                                        "report"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/internships/{id}/report/approve": {
            "post": {
                "operationId": "instructor.internships.approveReport",
                "summary": "Approve an internship report as one of the assigned supervisors",
                "tags": [
                    "[Instructor] APIs",
                    "Internship"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "remark": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Report approval recorded."
                                        },
                                        "report": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "report"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/live-classes": {
            "get": {
                "operationId": "instructor.liveClasses.liveClassManagement.index",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "credit_weight": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "class_timezone": {
                                                        "type": "string"
                                                    },
                                                    "timezone": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": "string"
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "additional_info": {
                                                        "anyOf": [
                                                            {
                                                                "type": "null"
                                                            },
                                                            {
                                                                "type": "object"
                                                            },
                                                            {
                                                                "type": "string"
                                                            }
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "signup_count": {
                                                        "type": "integer"
                                                    },
                                                    "bookings_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_bookings": {
                                                        "type": "integer"
                                                    },
                                                    "total_seats": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "seats_available": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_full": {
                                                        "type": "string"
                                                    },
                                                    "zoom_meeting_ready": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "class_date_and_time",
                                                    "class_timezone",
                                                    "timezone",
                                                    "start_at",
                                                    "end_at",
                                                    "additional_info",
                                                    "course",
                                                    "instructor",
                                                    "created_at",
                                                    "updated_at",
                                                    "signup_count",
                                                    "bookings_count",
                                                    "total_bookings",
                                                    "total_seats",
                                                    "seats_available",
                                                    "is_full",
                                                    "zoom_meeting_ready"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.liveClasses.liveClassManagement.store",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreLiveClassRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/instructor/live-classes/{id}": {
            "get": {
                "operationId": "instructor.liveClasses.liveClassManagement.show",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "class_topic": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "provider": {
                                                    "type": "string"
                                                },
                                                "duration_hours": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "credit_weight": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_free": {
                                                    "type": "boolean"
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": "string"
                                                },
                                                "class_timezone": {
                                                    "type": "string"
                                                },
                                                "timezone": {
                                                    "type": "string"
                                                },
                                                "start_at": {
                                                    "type": "string"
                                                },
                                                "end_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "additional_info": {
                                                    "anyOf": [
                                                        {
                                                            "type": "null"
                                                        },
                                                        {
                                                            "type": "object"
                                                        },
                                                        {
                                                            "type": "string"
                                                        }
                                                    ]
                                                },
                                                "course": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "is_paid": {
                                                            "type": "integer"
                                                        },
                                                        "price": {
                                                            "type": [
                                                                "number",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail_url": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "is_paid",
                                                        "price",
                                                        "thumbnail",
                                                        "thumbnail_url"
                                                    ]
                                                },
                                                "instructor": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "role": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "role",
                                                        "photo"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "bookings_count": {
                                                    "type": "integer"
                                                },
                                                "total_bookings": {
                                                    "type": "integer"
                                                },
                                                "total_seats": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "seats_available": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_full": {
                                                    "type": "string"
                                                },
                                                "zoom_meeting_ready": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "user_id",
                                                "class_topic",
                                                "note",
                                                "provider",
                                                "duration_hours",
                                                "credit_weight",
                                                "is_free",
                                                "thumbnail",
                                                "thumbnail_url",
                                                "class_date_and_time",
                                                "class_timezone",
                                                "timezone",
                                                "start_at",
                                                "end_at",
                                                "additional_info",
                                                "course",
                                                "instructor",
                                                "created_at",
                                                "updated_at",
                                                "signup_count",
                                                "bookings_count",
                                                "total_bookings",
                                                "total_seats",
                                                "seats_available",
                                                "is_full",
                                                "zoom_meeting_ready"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.liveClasses.liveClassManagement.update",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateLiveClassRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.liveClasses.liveClassManagement.destroy",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/live-classes/{id}/meeting/retry": {
            "post": {
                "operationId": "instructor.liveClasses.liveClassManagement.retryMeeting",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Zoom meeting provisioned successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "class_topic": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "provider": {
                                                    "type": "string"
                                                },
                                                "duration_hours": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "credit_weight": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_free": {
                                                    "type": "boolean"
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": "string"
                                                },
                                                "class_timezone": {
                                                    "type": "string"
                                                },
                                                "timezone": {
                                                    "type": "string"
                                                },
                                                "start_at": {
                                                    "type": "string"
                                                },
                                                "end_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "additional_info": {
                                                    "anyOf": [
                                                        {
                                                            "type": "null"
                                                        },
                                                        {
                                                            "type": "object"
                                                        },
                                                        {
                                                            "type": "string"
                                                        }
                                                    ]
                                                },
                                                "course": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "is_paid": {
                                                            "type": "integer"
                                                        },
                                                        "price": {
                                                            "type": [
                                                                "number",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail_url": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "is_paid",
                                                        "price",
                                                        "thumbnail",
                                                        "thumbnail_url"
                                                    ]
                                                },
                                                "instructor": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "role": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "role",
                                                        "photo"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "bookings_count": {
                                                    "type": "integer"
                                                },
                                                "total_bookings": {
                                                    "type": "integer"
                                                },
                                                "total_seats": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "seats_available": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_full": {
                                                    "type": "string"
                                                },
                                                "zoom_meeting_ready": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "user_id",
                                                "class_topic",
                                                "note",
                                                "provider",
                                                "duration_hours",
                                                "credit_weight",
                                                "is_free",
                                                "thumbnail",
                                                "thumbnail_url",
                                                "class_date_and_time",
                                                "class_timezone",
                                                "timezone",
                                                "start_at",
                                                "end_at",
                                                "additional_info",
                                                "course",
                                                "instructor",
                                                "created_at",
                                                "updated_at",
                                                "signup_count",
                                                "bookings_count",
                                                "total_bookings",
                                                "total_seats",
                                                "seats_available",
                                                "is_full",
                                                "zoom_meeting_ready"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/live-classes/{id}/signature": {
            "get": {
                "operationId": "instructor.liveClasses.liveClassManagement.signature",
                "summary": "Return a short-lived Zoom SDK JWT so an instructor/admin can join as host (role=1)",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "signature": {
                                            "type": "string"
                                        },
                                        "sdkKey": {
                                            "type": "string"
                                        },
                                        "meetingNumber": {
                                            "type": "string"
                                        },
                                        "password": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "signature",
                                        "sdkKey",
                                        "meetingNumber",
                                        "password"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Meeting details are not configured for this class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Zoom signature is only available for Zoom live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/live-classes/{id}/start": {
            "get": {
                "operationId": "instructor.liveClasses.liveClassManagement.start",
                "description": "When zoom_web_sdk is \"active\" the frontend should call the matching\nsignature endpoint to obtain a JWT, then launch the Zoom Meeting SDK.\nWhen the SDK is disabled the frontend should redirect to start_url.",
                "summary": "Return join details so an instructor/admin can start a class as host",
                "tags": [
                    "[Instructor] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "meeting_password": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        },
                                        "start_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "join_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "signature_endpoint",
                                        "start_url",
                                        "join_url"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Start is only supported for Zoom live classes."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/orders/history": {
            "get": {
                "operationId": "instructor.billing.orders.history",
                "summary": "Unified instructor order/transaction history",
                "tags": [
                    "[Instructor] APIs",
                    "OrderHistory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "current_page": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "per_page": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "per_page",
                                        "total",
                                        "last_page"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid status filter."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-requests": {
            "get": {
                "operationId": "instructor.billing.payoutRequest.index",
                "tags": [
                    "[Instructor] APIs",
                    "PayoutRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Payout"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "earned_amount": {
                                                            "type": "number"
                                                        },
                                                        "paid_amount": {
                                                            "type": "number"
                                                        },
                                                        "pending_amount": {
                                                            "type": "number"
                                                        },
                                                        "available_amount": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "earned_amount",
                                                        "paid_amount",
                                                        "pending_amount",
                                                        "available_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer",
                                                            "const": 1
                                                        },
                                                        "last_page": {
                                                            "type": "integer",
                                                            "const": 1
                                                        },
                                                        "per_page": {
                                                            "type": "integer",
                                                            "const": 20
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "earned_amount": {
                                                            "type": "number"
                                                        },
                                                        "paid_amount": {
                                                            "type": "number"
                                                        },
                                                        "pending_amount": {
                                                            "type": "number"
                                                        },
                                                        "available_amount": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "earned_amount",
                                                        "paid_amount",
                                                        "pending_amount",
                                                        "available_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "payoutRequest.store",
                "tags": [
                    "[Instructor] APIs",
                    "PayoutRequest"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "amount": {
                                        "type": "number"
                                    },
                                    "request_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "amount"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request submitted."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Payout"
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "earned_amount": {
                                                    "type": "number"
                                                },
                                                "paid_amount": {
                                                    "type": "number"
                                                },
                                                "pending_amount": {
                                                    "type": "number"
                                                },
                                                "available_amount": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "earned_amount",
                                                "paid_amount",
                                                "pending_amount",
                                                "available_amount"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-requests/{id}": {
            "get": {
                "operationId": "payoutRequest.show",
                "tags": [
                    "[Instructor] APIs",
                    "PayoutRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/Payout"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-requests/{id}/cancel": {
            "post": {
                "operationId": "payoutRequest.cancel",
                "tags": [
                    "[Instructor] APIs",
                    "PayoutRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request cancelled."
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Payout"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "earned_amount": {
                                                    "type": "number"
                                                },
                                                "paid_amount": {
                                                    "type": "number"
                                                },
                                                "pending_amount": {
                                                    "type": "number"
                                                },
                                                "available_amount": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "earned_amount",
                                                "paid_amount",
                                                "pending_amount",
                                                "available_amount"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only pending payout requests can be cancelled."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings": {
            "get": {
                "operationId": "instructor.profile.profile.payoutSettings_0",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.profile.profile.createPayoutSettings_1",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePayoutSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout method added."
                                        },
                                        "payout_settings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "payout_settings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.profile.profile.deletePayoutSettings_2",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payout settings deleted."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No payout settings found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/update": {
            "post": {
                "operationId": "instructor.profile.profile.updatePayoutSettings_0__post_v1_instructor_payout_settings_update",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/verify": {
            "post": {
                "operationId": "instructor.profile.profile.initiateVerification_0",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/verify/confirm": {
            "post": {
                "operationId": "instructor.profile.profile.confirmVerification_0",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "minLength": 6,
                                        "maxLength": 6
                                    }
                                },
                                "required": [
                                    "code"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/{id}": {
            "put": {
                "operationId": "instructor.profile.profile.updatePayoutSettings_0",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.profile.profile.deletePayoutSettings_1",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payout settings deleted."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No payout settings found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/{id}/primary": {
            "patch": {
                "operationId": "instructor.profile.profile.setPrimaryPayoutSettings_0",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/{id}/verify": {
            "post": {
                "operationId": "instructor.profile.profile.initiateVerification_0__post_v1_instructor_payout_settings_id_verify",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/payout-settings/{id}/verify/confirm": {
            "post": {
                "operationId": "instructor.profile.profile.confirmVerification_0__post_v1_instructor_payout_settings_id_verify_confirm",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "minLength": 6,
                                        "maxLength": 6
                                    }
                                },
                                "required": [
                                    "code"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/profile": {
            "get": {
                "operationId": "instructor.profile.show",
                "summary": "Get the authenticated instructor's profile",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "profile": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "profile"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.profile.profile.update_1",
                "description": "Accepts an optional `photo` file upload (JPEG/PNG, max 2 MB).\nSocial link fields are validated as URLs.",
                "summary": "Update the authenticated instructor's profile",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "biography": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "timezone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "profile": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "profile"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.profile.profile.update_2",
                "description": "Accepts an optional `photo` file upload (JPEG/PNG, max 2 MB).\nSocial link fields are validated as URLs.",
                "summary": "Update the authenticated instructor's profile",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "biography": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "timezone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "profile": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "profile"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/profile/update": {
            "post": {
                "operationId": "instructor.profile.profile.update_0",
                "description": "Accepts an optional `photo` file upload (JPEG/PNG, max 2 MB).\nSocial link fields are validated as URLs.",
                "summary": "Update the authenticated instructor's profile",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "biography": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "timezone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "profile": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "profile"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.profile.profile.update_1__put_v1_instructor_profile_update",
                "description": "Accepts an optional `photo` file upload (JPEG/PNG, max 2 MB).\nSocial link fields are validated as URLs.",
                "summary": "Update the authenticated instructor's profile",
                "tags": [
                    "[Instructor] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "biography": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "timezone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "profile": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "profile"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz-categories": {
            "get": {
                "operationId": "instructor.quizCategories.index",
                "summary": "List quiz categories",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/QuizCategory"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.quizCategories.store",
                "summary": "Create a new quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/QuizCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz-categories/follows": {
            "get": {
                "operationId": "student.courses.quizCategoryFollow.index_0__get_v1_instructor_quiz_categories_follows",
                "summary": "List followed quiz categories for current student",
                "tags": [
                    "[Instructor] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "student.courses.quizCategoryFollow.store_1__post_v1_instructor_quiz_categories_follows",
                "summary": "Follow a quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "quiz_category_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "quiz_category_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category followed successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_category_id": {
                                                    "type": "integer"
                                                },
                                                "category": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_category_id",
                                                "category"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz-categories/follows/{categoryId}": {
            "delete": {
                "operationId": "student.courses.quizCategoryFollow.destroy_0__delete_v1_instructor_quiz_categories_follows_categoryId",
                "summary": "Unfollow a quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Student Quiz Category Follows",
                    "QuizCategoryFollow"
                ],
                "parameters": [
                    {
                        "name": "categoryId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category unfollowed successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz-categories/{id}": {
            "get": {
                "operationId": "instructor.quizCategories.show",
                "summary": "Show one quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.quizCategories.update",
                "summary": "Update a quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.quizCategories.destroy",
                "summary": "Delete a quiz category",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz/questions": {
            "get": {
                "operationId": "student.courses.quiz.questions_0__get_v1_instructor_quiz_questions",
                "description": "Returns the quiz lesson metadata, its questions (with options but\nwithout correct answers), the student's past submissions, and the\nparent course details.",
                "summary": "Load quiz questions for a given quiz (lesson)",
                "tags": [
                    "[Instructor] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz/result": {
            "get": {
                "operationId": "student.courses.quiz.result_0__get_v1_instructor_quiz_result",
                "description": "Returns the quiz metadata, all questions with their correct answers,\nand the student's specific submission showing which answers were right\nor wrong.",
                "summary": "Load the result of a specific quiz submission",
                "tags": [
                    "[Instructor] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submission_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz/submissions": {
            "get": {
                "operationId": "student.courses.quiz.submissions_0__get_v1_instructor_quiz_submissions",
                "description": "Returns a paginated list across all quizzes, with optional filtering by\na specific quiz lesson ID.",
                "summary": "List quiz submissions for the authenticated student",
                "tags": [
                    "[Instructor] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "quiz_id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "correct_answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "wrong_answer": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    },
                                                    "quiz": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "course_id": {
                                                                "type": "integer"
                                                            },
                                                            "total_mark": {
                                                                "type": "number"
                                                            },
                                                            "pass_mark": {
                                                                "type": "number"
                                                            },
                                                            "quiz_category": {
                                                                "type": [
                                                                    "object",
                                                                    "null"
                                                                ],
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string"
                                                                    },
                                                                    "title": {
                                                                        "type": "string"
                                                                    },
                                                                    "slug": {
                                                                        "type": "string"
                                                                    },
                                                                    "thumbnail": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "id",
                                                                    "title",
                                                                    "slug",
                                                                    "thumbnail"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "course_id",
                                                            "total_mark",
                                                            "pass_mark",
                                                            "quiz_category"
                                                        ]
                                                    },
                                                    "score": {
                                                        "type": "object",
                                                        "properties": {
                                                            "correct": {
                                                                "type": "integer"
                                                            },
                                                            "wrong": {
                                                                "type": "integer"
                                                            },
                                                            "total": {
                                                                "type": "string"
                                                            },
                                                            "percent": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "score_on_total": {
                                                                "type": "number"
                                                            },
                                                            "passed": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "correct",
                                                            "wrong",
                                                            "total",
                                                            "percent",
                                                            "score_on_total",
                                                            "passed"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "quiz_id",
                                                    "user_id",
                                                    "correct_answer",
                                                    "wrong_answer",
                                                    "created_at",
                                                    "updated_at",
                                                    "quiz",
                                                    "score"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/quiz/{id}/submit": {
            "post": {
                "operationId": "student.courses.quiz.submit_0__post_v1_instructor_quiz_id_submit",
                "description": "Accepts a map of `{ question_id: answer }` pairs. Validates each answer\nagainst the stored correct answer for MCQ, fill-in-the-blank, and\ntrue/false question types. Records a `QuizSubmission` with the results.\n\nRespects the retake limit configured on the quiz lesson \u2014 submissions\nbeyond the allowed attempts are rejected.",
                "summary": "Submit quiz answers",
                "tags": [
                    "[Instructor] APIs",
                    "Quizzes",
                    "Quiz"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "answers": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "answers"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes": {
            "get": {
                "operationId": "instructor.courses.quizManagement.index",
                "description": "Returns lessons with `lesson_type = 'quiz'`, including question count and\nsubmission count per quiz.",
                "summary": "List quizzes, optionally filtered by course",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quizzes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "course_id": {
                                                        "type": "string"
                                                    },
                                                    "section_id": {
                                                        "type": "string"
                                                    },
                                                    "duration": {
                                                        "type": "string"
                                                    },
                                                    "total_mark": {
                                                        "type": "string"
                                                    },
                                                    "pass_mark": {
                                                        "type": "string"
                                                    },
                                                    "retake": {
                                                        "type": "integer"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "difficulty_level_id": {
                                                        "type": "string"
                                                    },
                                                    "difficulty_level": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "slug"
                                                        ]
                                                    },
                                                    "quiz_category_id": {
                                                        "type": "string"
                                                    },
                                                    "quiz_category": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "thumbnail": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "thumbnail"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "sort": {
                                                        "type": "string"
                                                    },
                                                    "question_count": {
                                                        "type": "integer"
                                                    },
                                                    "submission_count": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "title",
                                                    "course_id",
                                                    "section_id",
                                                    "duration",
                                                    "total_mark",
                                                    "pass_mark",
                                                    "retake",
                                                    "description",
                                                    "thumbnail",
                                                    "difficulty_level_id",
                                                    "difficulty_level",
                                                    "quiz_category_id",
                                                    "quiz_category",
                                                    "status",
                                                    "sort",
                                                    "question_count",
                                                    "submission_count",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "quizzes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.courses.quizManagement.store",
                "description": "Creates a lesson record with `lesson_type = 'quiz'`. Duration is\nassembled from separate hour/minute/second fields. Title uniqueness\nis enforced within the course owner's lessons.",
                "summary": "Create a new quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "course_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "section_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "total_mark": {
                                        "type": "number",
                                        "minimum": 1
                                    },
                                    "pass_mark": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "retake": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "quiz_category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "difficulty_level_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "hour": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 23
                                    },
                                    "minute": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "second": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "total_mark",
                                    "pass_mark",
                                    "retake"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{id}": {
            "put": {
                "operationId": "instructor.courses.quizManagement.update",
                "summary": "Update an existing quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "course_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "section_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "total_mark": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "pass_mark": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "retake": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "quiz_category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "difficulty_level_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "hour": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 23
                                    },
                                    "minute": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "second": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz updated."
                                                },
                                                "quiz": {
                                                    "type": "object",
                                                    "properties": {
                                                        "": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        null,
                                                        "thumbnail"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "quiz"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz updated."
                                                },
                                                "quiz": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "source": {
                                                            "type": "string",
                                                            "const": "legacy"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "total_mark": {
                                                            "type": "string"
                                                        },
                                                        "pass_mark": {
                                                            "type": "string"
                                                        },
                                                        "retake": {
                                                            "type": "string"
                                                        },
                                                        "description": {
                                                            "type": "string"
                                                        },
                                                        "difficulty_level_id": {
                                                            "type": "string"
                                                        },
                                                        "difficulty_level": {
                                                            "type": [
                                                                "object",
                                                                "null"
                                                            ],
                                                            "properties": {
                                                                "id": {
                                                                    "type": "string"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "slug": {
                                                                    "type": "string"
                                                                }
                                                            },
                                                            "required": [
                                                                "id",
                                                                "name",
                                                                "slug"
                                                            ]
                                                        },
                                                        "updated_at": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "source",
                                                        "title",
                                                        "total_mark",
                                                        "pass_mark",
                                                        "retake",
                                                        "description",
                                                        "difficulty_level_id",
                                                        "difficulty_level",
                                                        "updated_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "quiz"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "A quiz with this title already exists in this scope."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.courses.quizManagement.destroy",
                "summary": "Delete a quiz and all its questions and submissions",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{id}/submissions": {
            "get": {
                "operationId": "instructor.courses.quizManagement.submissions",
                "description": "Returns all submissions for a given quiz, grouped by student, with\nattempt number and score breakdown.",
                "summary": "List student submissions for a quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quiz": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "quiz_category_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "quiz_category": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "thumbnail"
                                                    ]
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_mark": {
                                                    "type": "number"
                                                },
                                                "pass_mark": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "quiz_category_id",
                                                "quiz_category",
                                                "thumbnail",
                                                "total_mark",
                                                "pass_mark"
                                            ]
                                        },
                                        "submissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "user_name": {
                                                        "type": "string"
                                                    },
                                                    "user_email": {
                                                        "type": "string"
                                                    },
                                                    "attempt": {
                                                        "type": "string"
                                                    },
                                                    "correct_count": {
                                                        "type": "integer"
                                                    },
                                                    "wrong_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_questions": {
                                                        "type": "string"
                                                    },
                                                    "score_percent": {
                                                        "anyOf": [
                                                            {
                                                                "type": "number"
                                                            },
                                                            {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0
                                                                ]
                                                            }
                                                        ]
                                                    },
                                                    "score_on_total": {
                                                        "type": "number"
                                                    },
                                                    "passed": {
                                                        "type": "boolean"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "user_name",
                                                    "user_email",
                                                    "attempt",
                                                    "correct_count",
                                                    "wrong_count",
                                                    "total_questions",
                                                    "score_percent",
                                                    "score_on_total",
                                                    "passed",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "quiz",
                                        "submissions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/bulk-uploads": {
            "post": {
                "operationId": "instructor.courses.quizBulkUpload.store",
                "tags": [
                    "[Instructor] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload queued."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload failed to start."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "null"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "An upload is already in progress for this quiz. Wait for it to finish before starting another."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Replace all requires confirm_replace when the quiz has existing questions."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "instructor.courses.quizBulkUpload.index",
                "tags": [
                    "[Instructor] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "queued",
                                "processing",
                                "completed",
                                "completed_with_errors",
                                "failed"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/QuizBulkUpload"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/bulk-uploads/{uploadId}": {
            "get": {
                "operationId": "instructor.courses.quizBulkUpload.show",
                "tags": [
                    "[Instructor] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "upload": {
                                            "$ref": "#/components/schemas/QuizBulkUpload"
                                        }
                                    },
                                    "required": [
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.courses.quizBulkUpload.destroy",
                "tags": [
                    "[Instructor] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cannot delete a processing upload."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/bulk-uploads/{uploadId}/retry": {
            "post": {
                "operationId": "instructor.courses.quizBulkUpload.retry",
                "tags": [
                    "[Instructor] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload re-queued."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload failed to restart."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Upload file is missing on disk."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Upload is currently processing."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/questions": {
            "get": {
                "operationId": "instructor.courses.question.index",
                "description": "Returns all questions for the given quiz, ordered by sort position,\nincluding correct answers (visible to admin/instructor).",
                "summary": "List questions for a quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "questions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "quiz_id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "type": {
                                                        "type": "string"
                                                    },
                                                    "options": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "answer": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "sort": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "quiz_id",
                                                    "title",
                                                    "type",
                                                    "options",
                                                    "answer",
                                                    "sort",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "questions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.courses.question.store",
                "summary": "Create a new question in a quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "mcq",
                                            "fill_blanks",
                                            "true_false"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "answer": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "title",
                                    "type",
                                    "answer"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/questions/reorder": {
            "post": {
                "operationId": "instructor.courses.question.reorder",
                "description": "Accepts an array of `{ id, sort }` pairs and bulk-updates sort positions.",
                "summary": "Reorder questions within a quiz",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "sort": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "sort"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Questions reordered."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/quizzes/{quizId}/questions/{id}": {
            "get": {
                "operationId": "instructor.courses.question.show",
                "summary": "Get a single question",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "question": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "options": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "answer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "sort": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_id",
                                                "title",
                                                "type",
                                                "options",
                                                "answer",
                                                "sort",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "question"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "instructor.courses.question.update",
                "summary": "Update an existing question",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "mcq",
                                            "fill_blanks",
                                            "true_false"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "answer": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Question updated."
                                        },
                                        "question": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "options": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "answer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "sort": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_id",
                                                "title",
                                                "type",
                                                "options",
                                                "answer",
                                                "sort"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "question"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.courses.question.destroy",
                "summary": "Delete a question",
                "tags": [
                    "[Instructor] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Question deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/referrals/history": {
            "get": {
                "operationId": "instructor.referrals.referral.history",
                "tags": [
                    "[Instructor] APIs",
                    "Referral"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "referee": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email"
                                                        ]
                                                    },
                                                    "trigger_type": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "amount_earned": {
                                                        "type": "number"
                                                    },
                                                    "currency": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "referee",
                                                    "trigger_type",
                                                    "status",
                                                    "amount_earned",
                                                    "currency",
                                                    "created_at"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/referrals/summary": {
            "get": {
                "operationId": "instructor.referrals.referral.summary",
                "tags": [
                    "[Instructor] APIs",
                    "Referral"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "code": {
                                                    "type": "string"
                                                },
                                                "share_url": {
                                                    "type": "string"
                                                },
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "stats": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_invited": {
                                                            "type": "string"
                                                        },
                                                        "total_rewarded": {
                                                            "type": "string"
                                                        },
                                                        "total_pending": {
                                                            "type": "string"
                                                        },
                                                        "cash_earned": {
                                                            "type": "number"
                                                        },
                                                        "currency": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "total_invited",
                                                        "total_rewarded",
                                                        "total_pending",
                                                        "cash_earned",
                                                        "currency"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "code",
                                                "share_url",
                                                "enabled",
                                                "stats"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "code": {
                                                    "type": "null"
                                                },
                                                "share_url": {
                                                    "type": "null"
                                                },
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "stats": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_invited": {
                                                            "type": "integer"
                                                        },
                                                        "total_rewarded": {
                                                            "type": "integer"
                                                        },
                                                        "total_pending": {
                                                            "type": "integer"
                                                        },
                                                        "cash_earned": {
                                                            "type": "integer"
                                                        },
                                                        "currency": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "total_invited",
                                                        "total_rewarded",
                                                        "total_pending",
                                                        "cash_earned",
                                                        "currency"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "code",
                                                "share_url",
                                                "enabled",
                                                "stats"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/revenue/splits": {
            "get": {
                "operationId": "revenueSplit.index",
                "tags": [
                    "[Instructor] APIs",
                    "RevenueSplit"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorRevenueSplit"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "creator_amount": {
                                                            "type": "number"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "number"
                                                        },
                                                        "total_amount": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "total_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "creator_amount": {
                                                            "type": "integer"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "integer"
                                                        },
                                                        "total_amount": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "total_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "summary"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/revenue/summary": {
            "get": {
                "operationId": "revenueSummary.index",
                "description": "Returns totals + period-bucketed breakdown of the instructor's earnings,\ngrouped by asset type and time period. When instructor_revenue_splits is\nnot yet migrated, returns zeros.\n\nGET /api/v1/instructor/revenue/summary",
                "summary": "Revenue summary for the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "RevenueSummary"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "creator_amount": {
                                                            "type": "number"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "number"
                                                        },
                                                        "total_amount": {
                                                            "type": "number"
                                                        },
                                                        "transactions": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "total_amount",
                                                        "transactions"
                                                    ]
                                                },
                                                "payout": {
                                                    "type": "object",
                                                    "properties": {
                                                        "paid_to_date": {
                                                            "type": "number"
                                                        },
                                                        "pending_withdrawals": {
                                                            "type": "number"
                                                        },
                                                        "available_to_withdraw": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "paid_to_date",
                                                        "pending_withdrawals",
                                                        "available_to_withdraw"
                                                    ]
                                                },
                                                "trend": {
                                                    "type": "string"
                                                },
                                                "by_asset_type": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "summary",
                                                "payout",
                                                "trend",
                                                "by_asset_type"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string",
                                                    "const": "30d"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "creator_amount": {
                                                            "type": "integer"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "integer"
                                                        },
                                                        "total_amount": {
                                                            "type": "integer"
                                                        },
                                                        "transactions": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "total_amount",
                                                        "transactions"
                                                    ]
                                                },
                                                "payout": {
                                                    "type": "object",
                                                    "properties": {
                                                        "paid_to_date": {
                                                            "type": "integer"
                                                        },
                                                        "pending_withdrawals": {
                                                            "type": "integer"
                                                        },
                                                        "available_to_withdraw": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "paid_to_date",
                                                        "pending_withdrawals",
                                                        "available_to_withdraw"
                                                    ]
                                                },
                                                "trend": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "by_asset_type": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "summary",
                                                "payout",
                                                "trend",
                                                "by_asset_type"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/reviews/received": {
            "get": {
                "operationId": "instructor.reviews.received",
                "summary": "List all reviews received on courses authored by the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "reviews": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "reviewer_name": {
                                                        "type": "string"
                                                    },
                                                    "course_title": {
                                                        "type": "string"
                                                    },
                                                    "rating": {
                                                        "type": "integer"
                                                    },
                                                    "comment": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_reply": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_replied_at": {
                                                        "type": "string"
                                                    },
                                                    "date": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "reviewer_name",
                                                    "course_title",
                                                    "rating",
                                                    "comment",
                                                    "instructor_reply",
                                                    "instructor_replied_at",
                                                    "date"
                                                ]
                                            }
                                        },
                                        "average_rating": {
                                            "anyOf": [
                                                {
                                                    "type": "number"
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        0
                                                    ]
                                                }
                                            ]
                                        },
                                        "total_reviews": {
                                            "type": "integer"
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "reviews",
                                        "average_rating",
                                        "total_reviews",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/reviews/{id}/reply": {
            "post": {
                "operationId": "instructor.reviews.reply",
                "summary": "Add or update an instructor reply on a review for one of their courses",
                "tags": [
                    "[Instructor] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reply": {
                                        "type": "string",
                                        "maxLength": 2000
                                    }
                                },
                                "required": [
                                    "reply"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply posted."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/Review"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You can only reply to reviews on your own courses."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.reviews.deleteReply",
                "summary": "Delete an instructor reply from a review",
                "tags": [
                    "[Instructor] APIs",
                    "Reviews",
                    "Course Reviews"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply removed."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/Review"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "You can only remove replies on your own courses."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/support/tickets": {
            "get": {
                "operationId": "instructor.support.ticket.index",
                "description": "Students/instructors see their own tickets. Admins see all tickets,\noptionally filtered by status, priority, category, or search term.",
                "summary": "List tickets for the authenticated user",
                "tags": [
                    "[Instructor] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ticket"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.support.ticket.store",
                "description": "Creates the ticket and its initial message in one request.",
                "summary": "Create a new support ticket",
                "tags": [
                    "[Instructor] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "message": {
                                        "type": "string"
                                    },
                                    "priority_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "subject",
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket created."
                                        },
                                        "ticket": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ticket"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "ticket"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/support/tickets/{code}": {
            "get": {
                "operationId": "instructor.support.ticket.show",
                "summary": "Get a single ticket with its full message thread",
                "tags": [
                    "[Instructor] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "ticket": {
                                            "$ref": "#/components/schemas/Ticket"
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "message": {
                                                        "type": "string"
                                                    },
                                                    "sender_id": {
                                                        "type": "integer"
                                                    },
                                                    "receiver_id": {
                                                        "type": "integer"
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "message",
                                                    "sender_id",
                                                    "receiver_id",
                                                    "file",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "ticket",
                                        "messages"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/support/tickets/{code}/reply": {
            "post": {
                "operationId": "instructor.support.ticket.reply",
                "summary": "Reply to a ticket thread",
                "tags": [
                    "[Instructor] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "message": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply sent."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessage"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/availability": {
            "get": {
                "operationId": "tutor.instructor.availability.index",
                "summary": "Return the authenticated instructor's weekly availability windows and blocked dates",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorAvailability"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "windows": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/InstructorAvailability"
                                            }
                                        },
                                        "blocked_dates": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/InstructorAvailability"
                                            }
                                        }
                                    },
                                    "required": [
                                        "windows",
                                        "blocked_dates"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/availability/blocked-dates": {
            "post": {
                "operationId": "tutor.instructor.availability.addBlockedDate",
                "description": "Body: { \"date\": \"2026-07-04\", \"timezone\": \"America/New_York\" }",
                "summary": "Add a blocked-date exception",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorAvailability"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "timezone": {
                                        "type": "string",
                                        "maxLength": 50
                                    }
                                },
                                "required": [
                                    "date",
                                    "timezone"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Date blocked."
                                        },
                                        "blocked_date": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "blocked_date"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/availability/blocked-dates/{id}": {
            "delete": {
                "operationId": "tutor.instructor.availability.removeBlockedDate",
                "summary": "Remove a blocked-date exception",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorAvailability"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blocked date removed."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blocked date not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/availability/windows": {
            "put": {
                "operationId": "tutor.instructor.availability.setWindows",
                "description": "Body: { \"timezone\": \"Europe/London\", \"windows\": [{\"day_of_week\": 1, \"from\": \"09:00\", \"to\": \"17:00\"}, ...] }",
                "summary": "Replace the instructor's weekly availability windows",
                "tags": [
                    "[Instructor] APIs",
                    "InstructorAvailability"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "timezone": {
                                        "type": "string",
                                        "maxLength": 50
                                    },
                                    "windows": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "day_of_week": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 6
                                                },
                                                "from": {
                                                    "type": "string"
                                                },
                                                "to": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "day_of_week",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "timezone",
                                    "windows"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Availability windows updated."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings": {
            "get": {
                "operationId": "tutors.instructor.myBookings",
                "summary": "List bookings for this instructor's schedules",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorBooking"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/feed.ics": {
            "get": {
                "operationId": "tutor.instructor.bookingFeed",
                "summary": "Subscribable iCal feed for all instructor bookings.\nProtected by a personal feed token passed as a query parameter",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/calendar; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "403": {
                        "description": "An error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "description": "Error overview.",
                                            "example": ""
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}": {
            "get": {
                "operationId": "tutors.instructor.bookingDetail",
                "summary": "Get a single booking detail for this instructor",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "schedule_id": {
                                                    "type": "integer"
                                                },
                                                "live_class_id": {
                                                    "type": "integer"
                                                },
                                                "tutor_id": {
                                                    "type": "integer"
                                                },
                                                "student_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "integer"
                                                },
                                                "end_time": {
                                                    "type": "integer"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "instructor_joined_at": {
                                                    "type": "string"
                                                },
                                                "student_joined_at": {
                                                    "type": "string"
                                                },
                                                "delivered_at": {
                                                    "type": "string"
                                                },
                                                "student_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "auto_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "delivery_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancellation_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "tutor_name": {
                                                    "type": "string"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "subject_name": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "can_mark_delivered": {
                                                    "type": "string"
                                                },
                                                "can_confirm_delivery": {
                                                    "type": "string"
                                                },
                                                "can_review": {
                                                    "type": "string"
                                                },
                                                "can_cancel": {
                                                    "type": "string"
                                                },
                                                "timeline": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "confirmed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "in_progress"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "awaiting_confirmation"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "completed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "cancelled"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "schedule_id",
                                                "live_class_id",
                                                "tutor_id",
                                                "student_id",
                                                "invoice",
                                                "payment_method",
                                                "price",
                                                "status",
                                                "lifecycle_status",
                                                "start_time",
                                                "end_time",
                                                "confirmed_at",
                                                "instructor_joined_at",
                                                "student_joined_at",
                                                "delivered_at",
                                                "student_confirmed_at",
                                                "auto_confirmed_at",
                                                "delivery_notes",
                                                "cancellation_reason",
                                                "cancelled_at",
                                                "created_at",
                                                "tutor_name",
                                                "student_name",
                                                "subject_name",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "can_join",
                                                "can_mark_delivered",
                                                "can_confirm_delivery",
                                                "can_review",
                                                "can_cancel",
                                                "timeline"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "booking"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/calendar.ics": {
            "get": {
                "operationId": "tutor.instructor.bookingCalendarExport",
                "summary": "Download a single booking as an ICS calendar file (instructor view)",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/calendar; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Content-Disposition": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/cancel": {
            "post": {
                "operationId": "tutors.instructor.cancelBooking",
                "summary": "Cancel a booked tutor session owned by this instructor",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "cancelled"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "student_id": {
                                                            "type": "integer"
                                                        },
                                                        "booking_status": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "cancellation_reason": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "schedule_id",
                                                        "student_id",
                                                        "booking_status",
                                                        "cancelled_at",
                                                        "cancellation_reason"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/join": {
            "get": {
                "operationId": "tutors.instructor.joinBooking",
                "summary": "Get Zoom host credentials for a tutor session",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking_id": {
                                            "type": "integer"
                                        },
                                        "booking": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "schedule_id": {
                                                    "type": "integer"
                                                },
                                                "live_class_id": {
                                                    "type": "integer"
                                                },
                                                "tutor_id": {
                                                    "type": "integer"
                                                },
                                                "student_id": {
                                                    "type": "integer"
                                                },
                                                "invoice": {
                                                    "type": "string"
                                                },
                                                "payment_method": {
                                                    "type": "string"
                                                },
                                                "price": {
                                                    "type": "number"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "start_time": {
                                                    "type": "integer"
                                                },
                                                "end_time": {
                                                    "type": "integer"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "instructor_joined_at": {
                                                    "type": "string"
                                                },
                                                "student_joined_at": {
                                                    "type": "string"
                                                },
                                                "delivered_at": {
                                                    "type": "string"
                                                },
                                                "student_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "auto_confirmed_at": {
                                                    "type": "string"
                                                },
                                                "delivery_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancellation_reason": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "tutor_name": {
                                                    "type": "string"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "subject_name": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "can_join": {
                                                    "type": "string"
                                                },
                                                "can_mark_delivered": {
                                                    "type": "string"
                                                },
                                                "can_confirm_delivery": {
                                                    "type": "string"
                                                },
                                                "can_review": {
                                                    "type": "string"
                                                },
                                                "can_cancel": {
                                                    "type": "string"
                                                },
                                                "timeline": {
                                                    "type": "array",
                                                    "items": {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "confirmed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "in_progress"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "awaiting_confirmation"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "completed"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            },
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "step": {
                                                                        "type": "string",
                                                                        "const": "cancelled"
                                                                    },
                                                                    "at": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "required": [
                                                                    "step",
                                                                    "at"
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "schedule_id",
                                                "live_class_id",
                                                "tutor_id",
                                                "student_id",
                                                "invoice",
                                                "payment_method",
                                                "price",
                                                "status",
                                                "lifecycle_status",
                                                "start_time",
                                                "end_time",
                                                "confirmed_at",
                                                "instructor_joined_at",
                                                "student_joined_at",
                                                "delivered_at",
                                                "student_confirmed_at",
                                                "auto_confirmed_at",
                                                "delivery_notes",
                                                "cancellation_reason",
                                                "cancelled_at",
                                                "created_at",
                                                "tutor_name",
                                                "student_name",
                                                "subject_name",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "can_join",
                                                "can_mark_delivered",
                                                "can_confirm_delivery",
                                                "can_review",
                                                "can_cancel",
                                                "timeline"
                                            ]
                                        },
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": [],
                                        "meeting_password": [],
                                        "start_url": [],
                                        "join_url": [],
                                        "live_class_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "booking_id",
                                        "booking",
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "start_url",
                                        "join_url",
                                        "live_class_id",
                                        "signature_endpoint"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "This session has ended."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/mark-delivered": {
            "post": {
                "operationId": "tutors.instructor.markDelivered",
                "summary": "Mark a tutor session as delivered",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "awaiting_confirmation"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "live_class_id": {
                                                            "type": "integer"
                                                        },
                                                        "tutor_id": {
                                                            "type": "integer"
                                                        },
                                                        "student_id": {
                                                            "type": "integer"
                                                        },
                                                        "invoice": {
                                                            "type": "string"
                                                        },
                                                        "payment_method": {
                                                            "type": "string"
                                                        },
                                                        "price": {
                                                            "type": "number"
                                                        },
                                                        "status": {
                                                            "type": "string"
                                                        },
                                                        "lifecycle_status": {
                                                            "type": "string"
                                                        },
                                                        "start_time": {
                                                            "type": "integer"
                                                        },
                                                        "end_time": {
                                                            "type": "integer"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "instructor_joined_at": {
                                                            "type": "string"
                                                        },
                                                        "student_joined_at": {
                                                            "type": "string"
                                                        },
                                                        "delivered_at": {
                                                            "type": "string"
                                                        },
                                                        "student_confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "auto_confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "delivery_notes": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "cancellation_reason": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "created_at": {
                                                            "type": "string"
                                                        },
                                                        "tutor_name": {
                                                            "type": "string"
                                                        },
                                                        "student_name": {
                                                            "type": "string"
                                                        },
                                                        "subject_name": {
                                                            "type": "string"
                                                        },
                                                        "has_meeting_link": {
                                                            "type": "boolean"
                                                        },
                                                        "session_topic": {
                                                            "type": "string"
                                                        },
                                                        "session_note": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "can_join": {
                                                            "type": "string"
                                                        },
                                                        "can_mark_delivered": {
                                                            "type": "string"
                                                        },
                                                        "can_confirm_delivery": {
                                                            "type": "string"
                                                        },
                                                        "can_review": {
                                                            "type": "string"
                                                        },
                                                        "can_cancel": {
                                                            "type": "string"
                                                        },
                                                        "timeline": {
                                                            "type": "array",
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "confirmed"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "in_progress"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "awaiting_confirmation"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "completed"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "step": {
                                                                                "type": "string",
                                                                                "const": "cancelled"
                                                                            },
                                                                            "at": {
                                                                                "type": "string"
                                                                            }
                                                                        },
                                                                        "required": [
                                                                            "step",
                                                                            "at"
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "schedule_id",
                                                        "live_class_id",
                                                        "tutor_id",
                                                        "student_id",
                                                        "invoice",
                                                        "payment_method",
                                                        "price",
                                                        "status",
                                                        "lifecycle_status",
                                                        "start_time",
                                                        "end_time",
                                                        "confirmed_at",
                                                        "instructor_joined_at",
                                                        "student_joined_at",
                                                        "delivered_at",
                                                        "student_confirmed_at",
                                                        "auto_confirmed_at",
                                                        "delivery_notes",
                                                        "cancellation_reason",
                                                        "cancelled_at",
                                                        "created_at",
                                                        "tutor_name",
                                                        "student_name",
                                                        "subject_name",
                                                        "has_meeting_link",
                                                        "session_topic",
                                                        "session_note",
                                                        "can_join",
                                                        "can_mark_delivered",
                                                        "can_confirm_delivery",
                                                        "can_review",
                                                        "can_cancel",
                                                        "timeline"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/meeting": {
            "get": {
                "operationId": "tutors.instructor.bookingMeetingShow",
                "summary": "Get linked live-class meeting details for a tutor booking",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "booking_id": {
                                            "type": "string"
                                        },
                                        "meeting": {
                                            "type": "object",
                                            "properties": {
                                                "live_class_id": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "duration_hours": {
                                                    "type": "integer"
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "live_class_id",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "class_date_and_time",
                                                "duration_hours",
                                                "meeting_id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "booking_id",
                                        "meeting"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "tutors.instructor.bookingMeetingUpdate",
                "summary": "Update tutor session meeting details (topic/note)",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "class_topic": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "class_topic"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Session details updated."
                                        },
                                        "meeting": {
                                            "type": "object",
                                            "properties": {
                                                "live_class_id": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "duration_hours": {
                                                    "type": "integer"
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "live_class_id",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "class_date_and_time",
                                                "duration_hours",
                                                "meeting_id"
                                            ]
                                        },
                                        "live_class": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/LiveClass"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "meeting",
                                        "live_class"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/meeting/retry": {
            "post": {
                "operationId": "tutors.instructor.bookingMeetingRetry",
                "summary": "Retry Zoom meeting provisioning for a tutor booking",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Meeting provisioning retried."
                                        },
                                        "meeting": {
                                            "type": "object",
                                            "properties": {
                                                "live_class_id": {
                                                    "type": "string"
                                                },
                                                "has_meeting_link": {
                                                    "type": "boolean"
                                                },
                                                "session_topic": {
                                                    "type": "string"
                                                },
                                                "session_note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "duration_hours": {
                                                    "type": "integer"
                                                },
                                                "meeting_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "live_class_id",
                                                "has_meeting_link",
                                                "session_topic",
                                                "session_note",
                                                "class_date_and_time",
                                                "duration_hours",
                                                "meeting_id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "meeting"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Booking not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/bookings/{id}/reschedule": {
            "post": {
                "operationId": "tutors.instructor.rescheduleBooking",
                "summary": "Reschedule a booked session to a new time slot",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "start_time": {
                                        "type": "integer"
                                    },
                                    "end_time": {
                                        "type": "integer"
                                    },
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "start_time",
                                    "end_time"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "status": {
                                                    "type": "string",
                                                    "const": "rescheduled"
                                                },
                                                "booking": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "schedule_id": {
                                                            "type": "integer"
                                                        },
                                                        "student_id": {
                                                            "type": "integer"
                                                        },
                                                        "start_time": {
                                                            "type": "integer"
                                                        },
                                                        "end_time": {
                                                            "type": "integer"
                                                        },
                                                        "booking_status": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "schedule_id",
                                                        "student_id",
                                                        "start_time",
                                                        "end_time",
                                                        "booking_status"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "status",
                                                "booking"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/my-schedules": {
            "get": {
                "operationId": "instructor.tutor.tutorSchedule.mySchedules_0__get_v1_instructor_tutor_my_schedules",
                "summary": "List instructor's own schedules",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorSchedule"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/my-subjects": {
            "get": {
                "operationId": "instructor.tutor.tutorSchedule.mySubjects_0__get_v1_instructor_tutor_my_subjects",
                "summary": "List instructor's own teaching subjects",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "subjects": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorCanTeach"
                                            }
                                        }
                                    },
                                    "required": [
                                        "subjects"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/schedules": {
            "get": {
                "operationId": "instructor.tutor.tutorSchedule.mySchedules_0",
                "summary": "List instructor's own schedules",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorSchedule"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "tutors.instructor.createSchedule",
                "summary": "Create a schedule slot",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "subject_id": {
                                        "type": "integer"
                                    },
                                    "start_time": {
                                        "type": "integer"
                                    },
                                    "end_time": {
                                        "type": "integer"
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "tution_type": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "category_id",
                                    "subject_id",
                                    "start_time",
                                    "end_time"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Schedule created."
                                        },
                                        "schedule": {
                                            "$ref": "#/components/schemas/TutorSchedule"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "schedule"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/schedules/recurring": {
            "post": {
                "operationId": "tutors.instructor.createRecurringSchedules",
                "summary": "Create recurring schedule slots",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "subject_id": {
                                        "type": "integer"
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "start_at": {
                                        "type": "string"
                                    },
                                    "end_at": {
                                        "type": "string"
                                    },
                                    "timezone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "tution_type": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "weekdays": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 6
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "category_id",
                                    "subject_id",
                                    "start_date",
                                    "end_date",
                                    "start_at",
                                    "end_at",
                                    "weekdays"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Recurring schedules processed."
                                        },
                                        "created_count": {
                                            "type": "integer"
                                        },
                                        "conflict_count": {
                                            "type": "integer"
                                        },
                                        "created_schedules": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorSchedule"
                                            }
                                        },
                                        "conflicts": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "date": {
                                                                "type": "string"
                                                            },
                                                            "start_time": {
                                                                "type": "string"
                                                            },
                                                            "end_time": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "date",
                                                            "start_time",
                                                            "end_time"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "date": {
                                                                "type": "string"
                                                            },
                                                            "start_time": {
                                                                "type": "string"
                                                            },
                                                            "end_time": {
                                                                "type": "string"
                                                            },
                                                            "reason": {
                                                                "type": "string",
                                                                "const": "buffer"
                                                            }
                                                        },
                                                        "required": [
                                                            "date",
                                                            "start_time",
                                                            "end_time",
                                                            "reason"
                                                        ]
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "created_count",
                                        "conflict_count",
                                        "created_schedules",
                                        "conflicts"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/schedules/{id}": {
            "put": {
                "operationId": "tutors.instructor.updateSchedule",
                "summary": "Update a schedule slot",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "subject_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "start_time": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "end_time": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "tution_type": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Schedule updated."
                                        },
                                        "schedule": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/TutorSchedule"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "schedule"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "tutors.instructor.deleteSchedule",
                "summary": "Delete an unbooked schedule slot",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Schedule deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Schedule has an active booking and cannot be deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/subjects": {
            "get": {
                "operationId": "instructor.tutor.tutorSchedule.mySubjects_0",
                "summary": "List instructor's own teaching subjects",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "subjects": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorCanTeach"
                                            }
                                        }
                                    },
                                    "required": [
                                        "subjects"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "tutors.instructor.addSubject",
                "summary": "Add a teaching subject",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "subject_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "price": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "category_id",
                                    "subject_id",
                                    "description",
                                    "price"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject added."
                                        },
                                        "subject": {
                                            "$ref": "#/components/schemas/TutorCanTeach"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/subjects/{id}": {
            "put": {
                "operationId": "tutors.instructor.updateSubject",
                "summary": "Update a teaching subject",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "subject_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject updated."
                                        },
                                        "subject": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/TutorCanTeach"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "tutors.instructor.deleteSubject",
                "summary": "Delete a teaching subject",
                "tags": [
                    "[Instructor] APIs",
                    "TutorSchedule"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/time-requests": {
            "get": {
                "operationId": "tutor.instructor.timeRequests.index",
                "summary": "List pending time requests for the authenticated instructor",
                "tags": [
                    "[Instructor] APIs",
                    "TutorTimeRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorTimeRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/time-requests/{id}/accept": {
            "post": {
                "operationId": "tutor.instructor.timeRequests.accept",
                "summary": "Accept a time request: auto-creates a TutorSchedule and a TutorBooking",
                "tags": [
                    "[Instructor] APIs",
                    "TutorTimeRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "subject_id": {
                                        "type": "integer"
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "category_id",
                                    "subject_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/instructor/tutor/time-requests/{id}/decline": {
            "post": {
                "operationId": "tutor.instructor.timeRequests.decline",
                "summary": "Decline a time request",
                "tags": [
                    "[Instructor] APIs",
                    "TutorTimeRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Time request declined."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Time request not found or already resolved."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/creator/commerce/requests": {
            "get": {
                "operationId": "instructor.commerce.request.index_0__get_v1_creator_commerce_requests",
                "tags": [
                    "[Creator] APIs",
                    "Request"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "user_id": {
                                                "type": "integer"
                                            },
                                            "requester_id": {
                                                "type": "integer"
                                            },
                                            "requester_name": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "item_type": {
                                                "type": "string"
                                            },
                                            "item_id": {
                                                "type": "integer"
                                            },
                                            "item_data": {
                                                "type": [
                                                    "array",
                                                    "null"
                                                ],
                                                "items": []
                                            },
                                            "status": {
                                                "type": "string"
                                            },
                                            "reason": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "requested_at": {
                                                "type": "string"
                                            },
                                            "reviewed_at": {
                                                "type": "string"
                                            },
                                            "reviewed_by": {
                                                "type": [
                                                    "integer",
                                                    "null"
                                                ]
                                            },
                                            "reviewer_role": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "created_at": {
                                                "type": "string"
                                            },
                                            "updated_at": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "user_id",
                                            "requester_id",
                                            "requester_name",
                                            "item_type",
                                            "item_id",
                                            "item_data",
                                            "status",
                                            "reason",
                                            "requested_at",
                                            "reviewed_at",
                                            "reviewed_by",
                                            "reviewer_role",
                                            "created_at",
                                            "updated_at"
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/creator/commerce/requests/{requestId}/approve": {
            "post": {
                "operationId": "instructor.commerce.request.approve_0__post_v1_creator_commerce_requests_requestId_approve",
                "tags": [
                    "[Creator] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/creator/commerce/requests/{requestId}/reject": {
            "post": {
                "operationId": "instructor.commerce.request.reject_0__post_v1_creator_commerce_requests_requestId_reject",
                "tags": [
                    "[Creator] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/access/departments": {
            "get": {
                "operationId": "access.departments",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "slug": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "permissions": {
                                                        "type": "string"
                                                    },
                                                    "expanded_permissions": {
                                                        "type": "array",
                                                        "items": []
                                                    },
                                                    "is_system": {
                                                        "type": "boolean"
                                                    },
                                                    "assigned_users": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "slug",
                                                    "description",
                                                    "permissions",
                                                    "expanded_permissions",
                                                    "is_system",
                                                    "assigned_users"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.access.access.storeDepartment_1",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "permissions": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "name",
                                    "permissions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department created successfully."
                                        },
                                        "department": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "is_system": {
                                                    "type": "boolean"
                                                },
                                                "assigned_users": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "permissions",
                                                "expanded_permissions",
                                                "is_system",
                                                "assigned_users"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "department"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/access/departments/{id}": {
            "put": {
                "operationId": "access.updateDepartment",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "permissions": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department updated successfully."
                                        },
                                        "department": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "is_system": {
                                                    "type": "boolean"
                                                },
                                                "assigned_users": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "permissions",
                                                "expanded_permissions",
                                                "is_system",
                                                "assigned_users"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "department"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "access.destroyDepartment",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Cannot delete a department while admins are assigned to it."
                                                },
                                                "assigned_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "assigned_count"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "System departments cannot be deleted."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/access/permissions": {
            "get": {
                "operationId": "admin.access.access.permissionRegistry_0",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "modules": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "object",
                                                "properties": {
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "permissions": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "key": {
                                                                    "type": "string"
                                                                },
                                                                "label": {
                                                                    "type": "string"
                                                                }
                                                            },
                                                            "required": [
                                                                "key",
                                                                "label"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "required": [
                                                    "label",
                                                    "permissions"
                                                ]
                                            }
                                        },
                                        "permissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "module": {
                                                        "type": "string"
                                                    },
                                                    "routes": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "key",
                                                    "label",
                                                    "module",
                                                    "routes"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "modules",
                                        "permissions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/access/users/{id}": {
            "get": {
                "operationId": "admin.access.access.showUserAccess_0",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email"
                                            ]
                                        },
                                        "access": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "department_id": {
                                                    "type": "string"
                                                },
                                                "department": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "description": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "permissions": {
                                                            "type": "string"
                                                        },
                                                        "expanded_permissions": {
                                                            "type": "array",
                                                            "items": []
                                                        },
                                                        "is_system": {
                                                            "type": "boolean"
                                                        },
                                                        "assigned_users": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug",
                                                        "description",
                                                        "permissions",
                                                        "expanded_permissions",
                                                        "is_system",
                                                        "assigned_users"
                                                    ]
                                                },
                                                "granted_permissions": {
                                                    "type": "string"
                                                },
                                                "revoked_permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_department_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "resolved_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "department_id",
                                                "department",
                                                "granted_permissions",
                                                "revoked_permissions",
                                                "expanded_department_permissions",
                                                "resolved_permissions"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "user",
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.access.access.updateUserAccess_1",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "granted_permissions": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "revoked_permissions": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Admin access updated successfully."
                                        },
                                        "access": {
                                            "type": "object",
                                            "properties": {
                                                "permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "department": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug"
                                                    ]
                                                },
                                                "granted_permissions": {
                                                    "type": "string"
                                                },
                                                "revoked_permissions": {
                                                    "type": "string"
                                                },
                                                "is_super_admin": {
                                                    "type": "boolean"
                                                },
                                                "is_root_admin": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "permissions",
                                                "department",
                                                "granted_permissions",
                                                "revoked_permissions",
                                                "is_super_admin",
                                                "is_root_admin"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/admins": {
            "get": {
                "operationId": "admin.users.admins_0__get_v1_admin_admins",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "admin"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/analytics/courses": {
            "get": {
                "operationId": "admin.analytics.courses",
                "description": "Returns total enrollments, top enrolled courses, and enrollment\ntrend data for the specified period.",
                "summary": "Course enrollment and completion analytics",
                "tags": [
                    "[Admin] APIs",
                    "Analytics (Admin)",
                    "CourseAnalytics"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "period": {
                                            "type": "string"
                                        },
                                        "start_date": {
                                            "type": "string"
                                        },
                                        "end_date": {
                                            "type": "string"
                                        },
                                        "total_enrollments": {
                                            "type": "string"
                                        },
                                        "total_courses": {
                                            "type": "string"
                                        },
                                        "active_courses": {
                                            "type": "string"
                                        },
                                        "top_courses": {
                                            "type": "string"
                                        },
                                        "enrollment_trend": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "period",
                                        "start_date",
                                        "end_date",
                                        "total_enrollments",
                                        "total_courses",
                                        "active_courses",
                                        "top_courses",
                                        "enrollment_trend"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/analytics/revenue": {
            "get": {
                "operationId": "admin.analytics.revenue",
                "description": "Returns total platform revenue aggregated by day or month for the specified period.\nWhen the canonical instructor_revenue_splits table is available it is used and covers\nall asset types (course, ebook, bootcamp, tutor_schedule, team_training, etc.).\nOtherwise falls back to payment_histories (courses only).",
                "summary": "Revenue over time (daily/monthly breakdown)",
                "tags": [
                    "[Admin] APIs",
                    "Analytics (Admin)",
                    "Revenue"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "legacy"
                                                },
                                                "total_revenue": {
                                                    "type": "number"
                                                },
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "source",
                                                "total_revenue",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "splits"
                                                },
                                                "total_revenue": {
                                                    "type": "number"
                                                },
                                                "total_admin_revenue": {
                                                    "type": "number"
                                                },
                                                "total_instructor_revenue": {
                                                    "type": "number"
                                                },
                                                "total_transactions": {
                                                    "type": "integer"
                                                },
                                                "data": {
                                                    "type": "string"
                                                },
                                                "by_asset_type": {
                                                    "type": "string"
                                                },
                                                "by_source_type": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "source",
                                                "total_revenue",
                                                "total_admin_revenue",
                                                "total_instructor_revenue",
                                                "total_transactions",
                                                "data",
                                                "by_asset_type",
                                                "by_source_type"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/analytics/traffic": {
            "get": {
                "operationId": "admin.analytics.traffic.index",
                "summary": "Return traffic source breakdown for admin dashboard pie chart",
                "tags": [
                    "[Admin] APIs",
                    "Traffic"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "range": {
                                            "type": "string"
                                        },
                                        "breakdown": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "value": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "required": [
                                                    "label",
                                                    "value"
                                                ]
                                            }
                                        },
                                        "total": {
                                            "anyOf": [
                                                {
                                                    "type": "integer"
                                                },
                                                {
                                                    "type": "number"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "range",
                                        "breakdown",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invalid range. Allowed values: today, weekly, monthly, yearly."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/analytics/users": {
            "get": {
                "operationId": "admin.analytics.users",
                "description": "Returns total users by role, new registrations over time, and\ngrowth trend data for the specified period.",
                "summary": "User registrations and growth analytics",
                "tags": [
                    "[Admin] APIs",
                    "Analytics (Admin)",
                    "UserAnalytics"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "period": {
                                            "type": "string"
                                        },
                                        "start_date": {
                                            "type": "string"
                                        },
                                        "end_date": {
                                            "type": "string"
                                        },
                                        "total_users": {
                                            "type": "string"
                                        },
                                        "by_role": {
                                            "type": "string"
                                        },
                                        "new_users": {
                                            "type": "string"
                                        },
                                        "registration_trend": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "period",
                                        "start_date",
                                        "end_date",
                                        "total_users",
                                        "by_role",
                                        "new_users",
                                        "registration_trend"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/applicant-quiz-attempts": {
            "get": {
                "operationId": "applicantQuizAttempt.index",
                "summary": "List applicant quiz attempts across instructor, internship, and careers pipelines",
                "tags": [
                    "[Admin] APIs",
                    "Applicant Quiz Attempts (Admin)",
                    "ApplicantQuizAttempt"
                ],
                "parameters": [
                    {
                        "name": "pipeline",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "instructor",
                                "internship",
                                "job",
                                "careers"
                            ]
                        }
                    },
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "passed",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "application_id": {
                                                        "type": "integer"
                                                    },
                                                    "application_type": {
                                                        "type": "string",
                                                        "const": "job"
                                                    },
                                                    "application_status": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "applicant_name": {
                                                        "type": "string"
                                                    },
                                                    "applicant_email": {
                                                        "type": "string"
                                                    },
                                                    "quiz_id": {
                                                        "type": "integer"
                                                    },
                                                    "quiz_title": {
                                                        "type": "string"
                                                    },
                                                    "quiz_category_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "quiz_category_title": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "attempt_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "score_percent": {
                                                        "type": "number"
                                                    },
                                                    "score_on_total": {
                                                        "type": "number"
                                                    },
                                                    "total_mark": {
                                                        "type": "number"
                                                    },
                                                    "pass_mark": {
                                                        "type": "number"
                                                    },
                                                    "passed": {
                                                        "type": "boolean"
                                                    },
                                                    "points": {
                                                        "type": "integer"
                                                    },
                                                    "correct_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_questions": {
                                                        "type": "integer"
                                                    },
                                                    "completed_seconds": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "awarded_at": {
                                                        "type": "string"
                                                    },
                                                    "submitted_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "application_id",
                                                    "application_type",
                                                    "application_status",
                                                    "applicant_name",
                                                    "applicant_email",
                                                    "quiz_id",
                                                    "quiz_title",
                                                    "quiz_category_id",
                                                    "quiz_category_title",
                                                    "attempt_id",
                                                    "score_percent",
                                                    "score_on_total",
                                                    "total_mark",
                                                    "pass_mark",
                                                    "passed",
                                                    "points",
                                                    "correct_count",
                                                    "total_questions",
                                                    "completed_seconds",
                                                    "awarded_at",
                                                    "submitted_at",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz attempts are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/articles": {
            "get": {
                "operationId": "article.index",
                "tags": [
                    "[Admin] APIs",
                    "Article"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "knowledge_base": {
                                            "type": "string"
                                        },
                                        "articles": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Knowledge_base_topick"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "knowledge_base",
                                        "articles"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "article.store",
                "tags": [
                    "[Admin] APIs",
                    "Article"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 200
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "knowledge_base_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "title",
                                    "description",
                                    "knowledge_base_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Article saved successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Knowledge_base_topick"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/articles/{id}": {
            "get": {
                "operationId": "article.show",
                "tags": [
                    "[Admin] APIs",
                    "Article"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "article.update",
                "tags": [
                    "[Admin] APIs",
                    "Article"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "topic_name": {
                                        "type": "string",
                                        "maxLength": 200
                                    },
                                    "description": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "topic_name",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Article updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "article.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Article"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Article deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/addon-credit-purchases": {
            "get": {
                "operationId": "billing.admin.addonCreditPurchases.index",
                "tags": [
                    "[Admin] APIs",
                    "AddonCreditPurchase"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AddonCreditPurchase"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/credit-bundles": {
            "get": {
                "operationId": "billing.admin.creditBundles.index",
                "tags": [
                    "[Admin] APIs",
                    "CreditBundle"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CreditBundle"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "billing.admin.creditBundles.store",
                "tags": [
                    "[Admin] APIs",
                    "CreditBundle"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "credits": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "price": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 32
                                    },
                                    "iap_product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    }
                                },
                                "required": [
                                    "name",
                                    "credits",
                                    "price"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Credit bundle created."
                                        },
                                        "bundle": {
                                            "$ref": "#/components/schemas/CreditBundle"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "bundle"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/credit-bundles/{id}": {
            "get": {
                "operationId": "billing.admin.creditBundles.show",
                "tags": [
                    "[Admin] APIs",
                    "CreditBundle"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "bundle": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "bundle"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "billing.admin.creditBundles.update",
                "tags": [
                    "[Admin] APIs",
                    "CreditBundle"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "credits": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 32
                                    },
                                    "iap_product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Credit bundle updated."
                                        },
                                        "bundle": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "bundle"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "billing.admin.creditBundles.destroy",
                "tags": [
                    "[Admin] APIs",
                    "CreditBundle"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Credit bundle deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscription-plans": {
            "get": {
                "operationId": "billing.admin.subscriptionPlans.index",
                "tags": [
                    "[Admin] APIs",
                    "SubscriptionPlan"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SubscriptionPlan"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "billing.admin.subscriptionPlans.store",
                "tags": [
                    "[Admin] APIs",
                    "SubscriptionPlan"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "display_price": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 64
                                    },
                                    "stripe_price_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "iap_product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "is_recurring": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "duration_days": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "live_class_credits": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "is_active": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "title",
                                    "duration_days"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscription plan created."
                                        },
                                        "plan": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/SubscriptionPlan"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "plan"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscription-plans/{id}": {
            "get": {
                "operationId": "billing.admin.subscriptionPlans.show",
                "tags": [
                    "[Admin] APIs",
                    "SubscriptionPlan"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "plan": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "plan"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "billing.admin.subscriptionPlans.update",
                "tags": [
                    "[Admin] APIs",
                    "SubscriptionPlan"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "display_price": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 64
                                    },
                                    "stripe_price_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "iap_product_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 191
                                    },
                                    "is_recurring": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "duration_days": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "live_class_credits": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "is_active": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscription plan updated."
                                        },
                                        "plan": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "plan"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "billing.admin.subscriptionPlans.destroy",
                "tags": [
                    "[Admin] APIs",
                    "SubscriptionPlan"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscription plan deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscriptions": {
            "get": {
                "operationId": "billing.admin.subscriptions.index",
                "tags": [
                    "[Admin] APIs",
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Subscription"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscriptions/{id}": {
            "get": {
                "operationId": "billing.admin.subscriptions.show",
                "tags": [
                    "[Admin] APIs",
                    "Subscription"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "subscription": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "subscription"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscriptions/{id}/cancel": {
            "post": {
                "operationId": "billing.admin.subscriptions.cancel",
                "tags": [
                    "[Admin] APIs",
                    "Subscription"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to cancel subscription right now"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cancellation scheduled"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "ends_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancel_at_period_end": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "status",
                                                "ends_at",
                                                "cancel_at_period_end"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subscription"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No active Stripe subscription found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription is not active"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/subscriptions/{id}/cancel-immediately": {
            "post": {
                "operationId": "billing.admin.subscriptions.cancelImmediately",
                "tags": [
                    "[Admin] APIs",
                    "Subscription"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Unable to cancel subscription right now"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscription cancelled immediately"
                                        },
                                        "subscription": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "ends_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "cancel_at_period_end": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "status",
                                                "ends_at",
                                                "cancel_at_period_end"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subscription"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No active Stripe subscription found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Subscription is not active"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/webhook-events/{platform}": {
            "get": {
                "operationId": "billing.admin.webhookEvents.index",
                "description": "Supported platform values:\n- stripe\n- apple\n- google",
                "summary": "List webhook events by platform for admin tables",
                "tags": [
                    "[Admin] APIs",
                    "WebhookEvent"
                ],
                "parameters": [
                    {
                        "name": "platform",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/LengthAwarePaginator"
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "from": {
                                                    "type": "null"
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "to": {
                                                    "type": "null"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "from",
                                                "last_page",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/billing/webhook-events/{platform}/{id}": {
            "get": {
                "operationId": "billing.admin.webhookEvents.show",
                "summary": "Get a single webhook event by platform and ID",
                "tags": [
                    "[Admin] APIs",
                    "WebhookEvent"
                ],
                "parameters": [
                    {
                        "name": "platform",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "event": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "event"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Webhook event not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Webhook events table not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/blog-categories": {
            "post": {
                "operationId": "admin.content.blog.storeCategory",
                "summary": "Create a blog category (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Blog"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "subtitle": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created."
                                        },
                                        "category": {
                                            "$ref": "#/components/schemas/BlogCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/blog-categories/{id}": {
            "put": {
                "operationId": "admin.content.blog.updateCategory",
                "summary": "Update a blog category (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "subtitle": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated."
                                        },
                                        "category": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.content.blog.deleteCategory",
                "summary": "Delete a blog category (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/blogs": {
            "get": {
                "operationId": "admin.content.blog.manage",
                "summary": "List blog posts for management (admin sees all, instructor sees own)",
                "tags": [
                    "[Admin] APIs",
                    "Blog"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Blog"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/blogs/{id}": {
            "delete": {
                "operationId": "admin.content.blog.destroy",
                "summary": "Delete a blog post (admin or own post for instructor)",
                "tags": [
                    "[Admin] APIs",
                    "Blog"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Blog post deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamp-categories": {
            "post": {
                "operationId": "bootcampCategory.store",
                "description": "Creates a new bootcamp category.",
                "summary": "Create bootcamp category",
                "tags": [
                    "[Admin] APIs",
                    "BootcampCategory"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/BootcampCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamp-categories/{id}": {
            "put": {
                "operationId": "bootcampCategory.update",
                "description": "Updates an existing bootcamp category.",
                "summary": "Update bootcamp category",
                "tags": [
                    "[Admin] APIs",
                    "BootcampCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Category ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "bootcampCategory.destroy",
                "description": "Deletes a category from the system.",
                "summary": "Delete bootcamp category",
                "tags": [
                    "[Admin] APIs",
                    "BootcampCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Category ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps": {
            "get": {
                "operationId": "admin.bootcamps.index",
                "description": "Returns a paginated list of all bootcamps (global admin scope).",
                "summary": "List bootcamps",
                "tags": [
                    "[Admin] APIs",
                    "AdminBootcamp"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Bootcamp"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.bootcamps.store",
                "description": "Creates a new bootcamp for the authenticated instructor.",
                "summary": "Create a bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "AdminBootcamp"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "required": [
                                    "title",
                                    "description",
                                    "category_id",
                                    "is_paid"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp created successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites": {
            "get": {
                "operationId": "adminBootcampWorkshopInvite.index",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "invited": {
                                                    "type": "integer"
                                                },
                                                "confirmed": {
                                                    "type": "integer"
                                                },
                                                "pending": {
                                                    "type": "integer"
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "invited",
                                                "confirmed",
                                                "pending",
                                                "signup_count"
                                            ]
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "bootcamp_id": {
                                                        "type": "integer"
                                                    },
                                                    "invitee_name": {
                                                        "type": "string"
                                                    },
                                                    "invitee_email": {
                                                        "type": "string"
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "application_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "invited_by": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "invited_at": {
                                                        "type": "string"
                                                    },
                                                    "last_invite_sent_at": {
                                                        "type": "string"
                                                    },
                                                    "confirmed_at": {
                                                        "type": "string"
                                                    },
                                                    "confirmation_method": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "source": {
                                                        "type": "string"
                                                    },
                                                    "cancelled_at": {
                                                        "type": "string"
                                                    },
                                                    "reminders_sent": {
                                                        "anyOf": [
                                                            {
                                                                "type": "array",
                                                                "items": []
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "string"
                                                                },
                                                                "minItems": 0,
                                                                "maxItems": 0,
                                                                "additionalItems": false
                                                            }
                                                        ]
                                                    },
                                                    "last_reminder_sent_at": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "cancelled",
                                                            "confirmed",
                                                            "invited"
                                                        ]
                                                    },
                                                    "pending_access_request": {
                                                        "anyOf": [
                                                            {
                                                                "type": "string"
                                                            },
                                                            {
                                                                "type": "boolean"
                                                            }
                                                        ]
                                                    },
                                                    "application": {
                                                        "$ref": "#/components/schemas/Application"
                                                    },
                                                    "user": {
                                                        "$ref": "#/components/schemas/User"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "bootcamp_id",
                                                    "invitee_name",
                                                    "invitee_email",
                                                    "user_id",
                                                    "application_id",
                                                    "invited_by",
                                                    "invited_at",
                                                    "last_invite_sent_at",
                                                    "confirmed_at",
                                                    "confirmation_method",
                                                    "source",
                                                    "cancelled_at",
                                                    "reminders_sent",
                                                    "last_reminder_sent_at",
                                                    "status",
                                                    "pending_access_request",
                                                    "application",
                                                    "user"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "summary",
                                        "data",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "adminBootcampWorkshopInvite.store",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "invitee_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "invitee_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "user_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "application_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Workshop invitation sent.",
                                                "Workshop invite created. Copy the confirmation link if email delivery failed."
                                            ]
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "workshop_confirm_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "expires_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "invite": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "bootcamp_id": {
                                                    "type": "integer"
                                                },
                                                "invitee_name": {
                                                    "type": "string"
                                                },
                                                "invitee_email": {
                                                    "type": "string"
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "application_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "invited_by": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "invited_at": {
                                                    "type": "string"
                                                },
                                                "last_invite_sent_at": {
                                                    "type": "string"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "confirmation_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "source": {
                                                    "type": "string"
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "reminders_sent": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": []
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0,
                                                            "additionalItems": false
                                                        }
                                                    ]
                                                },
                                                "last_reminder_sent_at": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "cancelled",
                                                        "confirmed",
                                                        "invited"
                                                    ]
                                                },
                                                "pending_access_request": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "boolean"
                                                        }
                                                    ]
                                                },
                                                "application": {
                                                    "$ref": "#/components/schemas/Application"
                                                },
                                                "user": {
                                                    "$ref": "#/components/schemas/User"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "bootcamp_id",
                                                "invitee_name",
                                                "invitee_email",
                                                "user_id",
                                                "application_id",
                                                "invited_by",
                                                "invited_at",
                                                "last_invite_sent_at",
                                                "confirmed_at",
                                                "confirmation_method",
                                                "source",
                                                "cancelled_at",
                                                "reminders_sent",
                                                "last_reminder_sent_at",
                                                "status",
                                                "pending_access_request",
                                                "application",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "workshop_confirm_url",
                                        "expires_at",
                                        "invite"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "string"
                                        },
                                        {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "user_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "user_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "application_id"
                                                    ]
                                                },
                                                {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "existing_instructor",
                                                        "existing_student",
                                                        null
                                                    ]
                                                }
                                            ],
                                            "minItems": 2,
                                            "maxItems": 2,
                                            "additionalItems": false
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/bulk": {
            "post": {
                "operationId": "adminBootcampWorkshopInvite.bulkStore",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "invitees": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "invitee_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "maxLength": 255
                                                },
                                                "invitee_email": {
                                                    "type": "string",
                                                    "format": "email",
                                                    "maxLength": 255
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "application_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "invitee_email"
                                            ]
                                        },
                                        "minItems": 1,
                                        "maxItems": 100
                                    }
                                },
                                "required": [
                                    "invitees"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "string"
                                        },
                                        {
                                            "type": "array",
                                            "prefixItems": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "user_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "user_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "application_id"
                                                    ]
                                                },
                                                {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "enum": [
                                                        "existing_instructor",
                                                        "existing_student",
                                                        null
                                                    ]
                                                }
                                            ],
                                            "minItems": 2,
                                            "maxItems": 2,
                                            "additionalItems": false
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/bulk-remind": {
            "post": {
                "operationId": "adminBootcampWorkshopInvite.bulkRemind",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "confirm",
                                            "event"
                                        ]
                                    },
                                    "invite_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1,
                                        "maxItems": 100
                                    }
                                },
                                "required": [
                                    "invite_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/{inviteId}": {
            "delete": {
                "operationId": "adminBootcampWorkshopInvite.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "inviteId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Workshop invite cancelled."
                                        },
                                        "invite": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "bootcamp_id": {
                                                    "type": "integer"
                                                },
                                                "invitee_name": {
                                                    "type": "string"
                                                },
                                                "invitee_email": {
                                                    "type": "string"
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "application_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "invited_by": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "invited_at": {
                                                    "type": "string"
                                                },
                                                "last_invite_sent_at": {
                                                    "type": "string"
                                                },
                                                "confirmed_at": {
                                                    "type": "string"
                                                },
                                                "confirmation_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "source": {
                                                    "type": "string"
                                                },
                                                "cancelled_at": {
                                                    "type": "string"
                                                },
                                                "reminders_sent": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": []
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 0,
                                                            "maxItems": 0,
                                                            "additionalItems": false
                                                        }
                                                    ]
                                                },
                                                "last_reminder_sent_at": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "cancelled",
                                                        "confirmed",
                                                        "invited"
                                                    ]
                                                },
                                                "pending_access_request": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "boolean"
                                                        }
                                                    ]
                                                },
                                                "application": {
                                                    "$ref": "#/components/schemas/Application"
                                                },
                                                "user": {
                                                    "$ref": "#/components/schemas/User"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "bootcamp_id",
                                                "invitee_name",
                                                "invitee_email",
                                                "user_id",
                                                "application_id",
                                                "invited_by",
                                                "invited_at",
                                                "last_invite_sent_at",
                                                "confirmed_at",
                                                "confirmation_method",
                                                "source",
                                                "cancelled_at",
                                                "reminders_sent",
                                                "last_reminder_sent_at",
                                                "status",
                                                "pending_access_request",
                                                "application",
                                                "user"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "invite"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/{inviteId}/confirm-offline": {
            "post": {
                "operationId": "adminBootcampWorkshopInvite.confirmOffline",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "inviteId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Workshop attendance marked as confirmed offline."
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "invite": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "bootcamp_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "user_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_by": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_at": {
                                                            "type": "string"
                                                        },
                                                        "last_invite_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmation_method": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "source": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "reminders_sent": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "array",
                                                                    "items": []
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    },
                                                                    "minItems": 0,
                                                                    "maxItems": 0,
                                                                    "additionalItems": false
                                                                }
                                                            ]
                                                        },
                                                        "last_reminder_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "cancelled",
                                                                "confirmed",
                                                                "invited"
                                                            ]
                                                        },
                                                        "pending_access_request": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "boolean"
                                                                }
                                                            ]
                                                        },
                                                        "application": {
                                                            "$ref": "#/components/schemas/Application"
                                                        },
                                                        "user": {
                                                            "$ref": "#/components/schemas/User"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "bootcamp_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "user_id",
                                                        "application_id",
                                                        "invited_by",
                                                        "invited_at",
                                                        "last_invite_sent_at",
                                                        "confirmed_at",
                                                        "confirmation_method",
                                                        "source",
                                                        "cancelled_at",
                                                        "reminders_sent",
                                                        "last_reminder_sent_at",
                                                        "status",
                                                        "pending_access_request",
                                                        "application",
                                                        "user"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "signup_count",
                                                "invite"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/{inviteId}/remind": {
            "post": {
                "operationId": "adminBootcampWorkshopInvite.remind",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "inviteId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "confirm",
                                            "event"
                                        ]
                                    },
                                    "send_email": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Workshop reminder sent.",
                                                        "Reminder could not be sent."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "invite": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "bootcamp_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "user_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_by": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_at": {
                                                            "type": "string"
                                                        },
                                                        "last_invite_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmation_method": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "source": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "reminders_sent": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "array",
                                                                    "items": []
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    },
                                                                    "minItems": 0,
                                                                    "maxItems": 0,
                                                                    "additionalItems": false
                                                                }
                                                            ]
                                                        },
                                                        "last_reminder_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "cancelled",
                                                                "confirmed",
                                                                "invited"
                                                            ]
                                                        },
                                                        "pending_access_request": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "boolean"
                                                                }
                                                            ]
                                                        },
                                                        "application": {
                                                            "$ref": "#/components/schemas/Application"
                                                        },
                                                        "user": {
                                                            "$ref": "#/components/schemas/User"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "bootcamp_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "user_id",
                                                        "application_id",
                                                        "invited_by",
                                                        "invited_at",
                                                        "last_invite_sent_at",
                                                        "confirmed_at",
                                                        "confirmation_method",
                                                        "source",
                                                        "cancelled_at",
                                                        "reminders_sent",
                                                        "last_reminder_sent_at",
                                                        "status",
                                                        "pending_access_request",
                                                        "application",
                                                        "user"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "invite"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{bootcampId}/workshop-invites/{inviteId}/resend": {
            "post": {
                "operationId": "adminBootcampWorkshopInvite.resend",
                "tags": [
                    "[Admin] APIs",
                    "Bootcamp Workshop Invites (Admin)",
                    "AdminBootcampWorkshopInvite"
                ],
                "parameters": [
                    {
                        "name": "bootcampId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "inviteId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Workshop invitation resent.",
                                                        "New confirmation link generated."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "workshop_confirm_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": "string"
                                                },
                                                "invite": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "bootcamp_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "user_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_by": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_at": {
                                                            "type": "string"
                                                        },
                                                        "last_invite_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmation_method": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "source": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "reminders_sent": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "array",
                                                                    "items": []
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    },
                                                                    "minItems": 0,
                                                                    "maxItems": 0,
                                                                    "additionalItems": false
                                                                }
                                                            ]
                                                        },
                                                        "last_reminder_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "cancelled",
                                                                "confirmed",
                                                                "invited"
                                                            ]
                                                        },
                                                        "pending_access_request": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "boolean"
                                                                }
                                                            ]
                                                        },
                                                        "application": {
                                                            "$ref": "#/components/schemas/Application"
                                                        },
                                                        "user": {
                                                            "$ref": "#/components/schemas/User"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "bootcamp_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "user_id",
                                                        "application_id",
                                                        "invited_by",
                                                        "invited_at",
                                                        "last_invite_sent_at",
                                                        "confirmed_at",
                                                        "confirmation_method",
                                                        "source",
                                                        "cancelled_at",
                                                        "reminders_sent",
                                                        "last_reminder_sent_at",
                                                        "status",
                                                        "pending_access_request",
                                                        "application",
                                                        "user"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "workshop_confirm_url",
                                                "expires_at",
                                                "invite"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/bootcamps/{id}": {
            "get": {
                "operationId": "admin.bootcamps.show",
                "description": "Returns details of a single bootcamp.",
                "summary": "Show bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "AdminBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.bootcamps.update",
                "description": "Updates bootcamp information.",
                "summary": "Update bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "AdminBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID\n\nPUT supports partial update; all fields below are optional.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "is_paid": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "publish_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "faqs": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "requirements": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "outcomes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_ids": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp updated successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.bootcamps.destroy",
                "description": "Removes a bootcamp owned by the authenticated user.",
                "summary": "Delete bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "AdminBootcamp"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Bootcamp ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bootcamp deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/commerce/requests": {
            "get": {
                "operationId": "admin.commerce.request.index",
                "tags": [
                    "[Admin] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "item_type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "requester_id": {
                                                        "type": "integer"
                                                    },
                                                    "requester_name": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "item_type": {
                                                        "type": "string"
                                                    },
                                                    "item_id": {
                                                        "type": "integer"
                                                    },
                                                    "item_data": {
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": []
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "reason": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "requested_at": {
                                                        "type": "string"
                                                    },
                                                    "reviewed_at": {
                                                        "type": "string"
                                                    },
                                                    "reviewed_by": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "reviewer_role": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "workshop_invite": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "requester_id",
                                                    "requester_name",
                                                    "item_type",
                                                    "item_id",
                                                    "item_data",
                                                    "status",
                                                    "reason",
                                                    "requested_at",
                                                    "reviewed_at",
                                                    "reviewed_by",
                                                    "reviewer_role",
                                                    "workshop_invite",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/commerce/requests/{requestId}/approve": {
            "post": {
                "operationId": "admin.commerce.request.approve",
                "tags": [
                    "[Admin] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "workshop_invite": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "workshop_invite",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/commerce/requests/{requestId}/reject": {
            "post": {
                "operationId": "admin.commerce.request.reject",
                "tags": [
                    "[Admin] APIs",
                    "Request"
                ],
                "parameters": [
                    {
                        "name": "requestId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "requester_id": {
                                            "type": "integer"
                                        },
                                        "requester_name": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "item_type": {
                                            "type": "string"
                                        },
                                        "item_id": {
                                            "type": "integer"
                                        },
                                        "item_data": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "reason": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "requested_at": {
                                            "type": "string"
                                        },
                                        "reviewed_at": {
                                            "type": "string"
                                        },
                                        "reviewed_by": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "reviewer_role": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "workshop_invite": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string"
                                        },
                                        "updated_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "user_id",
                                        "requester_id",
                                        "requester_name",
                                        "item_type",
                                        "item_id",
                                        "item_data",
                                        "status",
                                        "reason",
                                        "requested_at",
                                        "reviewed_at",
                                        "reviewed_by",
                                        "reviewer_role",
                                        "workshop_invite",
                                        "created_at",
                                        "updated_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/consultation/requests": {
            "get": {
                "operationId": "consultation.admin.index",
                "summary": "Filterable list of all consultation requests for admin oversight",
                "tags": [
                    "[Admin] APIs",
                    "ConsultationRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ConsultationRequest"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/consultation/requests/{id}/cancel": {
            "post": {
                "operationId": "consultation.admin.cancel",
                "summary": "Force-cancel a consultation request",
                "tags": [
                    "[Admin] APIs",
                    "ConsultationRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Consultation request cancelled."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Request is already resolved."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contact": {
            "get": {
                "operationId": "admin.support.feedback.index_0__get_v1_admin_contact",
                "summary": "List feedback entries (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Feedback"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contact/{id}": {
            "get": {
                "operationId": "admin.support.feedback.show_0__get_v1_admin_contact_id",
                "summary": "Get a single feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.support.feedback.destroy_1__delete_v1_admin_contact_id",
                "summary": "Delete a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contact/{id}/reply": {
            "post": {
                "operationId": "admin.support.feedback.reply_0__post_v1_admin_contact_id_reply",
                "description": "Marks the feedback as replied. The actual email sending is handled\nasynchronously or by the frontend calling a separate mail service.",
                "summary": "Reply to a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reply_message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "reply_message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback marked as replied."
                                        },
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contacts": {
            "get": {
                "operationId": "admin.support.feedback.index_0__get_v1_admin_contacts",
                "summary": "List feedback entries (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Feedback"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contacts/{id}": {
            "get": {
                "operationId": "admin.support.feedback.show_0__get_v1_admin_contacts_id",
                "summary": "Get a single feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.support.feedback.destroy_1__delete_v1_admin_contacts_id",
                "summary": "Delete a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/contacts/{id}/reply": {
            "post": {
                "operationId": "admin.support.feedback.reply_0__post_v1_admin_contacts_id_reply",
                "description": "Marks the feedback as replied. The actual email sending is handled\nasynchronously or by the frontend calling a separate mail service.",
                "summary": "Reply to a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reply_message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "reply_message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback marked as replied."
                                        },
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/coupons": {
            "get": {
                "operationId": "admin.coupons.index",
                "summary": "List all coupons",
                "tags": [
                    "[Admin] APIs",
                    "Coupons (Admin)",
                    "Coupon"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Coupon"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.coupons.store",
                "summary": "Create a coupon",
                "tags": [
                    "[Admin] APIs",
                    "Coupons (Admin)",
                    "Coupon"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "discount": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "expiry": {
                                        "type": "string",
                                        "maxLength": 50
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "code",
                                    "discount"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/coupons/{id}": {
            "put": {
                "operationId": "admin.coupons.update",
                "summary": "Update a coupon",
                "tags": [
                    "[Admin] APIs",
                    "Coupons (Admin)",
                    "Coupon"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "discount": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "expiry": {
                                        "type": "string",
                                        "maxLength": 50
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.coupons.destroy",
                "summary": "Delete a coupon",
                "tags": [
                    "[Admin] APIs",
                    "Coupons (Admin)",
                    "Coupon"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/course-categories": {
            "get": {
                "operationId": "adminCourseCategory.index",
                "summary": "List all course categories",
                "tags": [
                    "[Admin] APIs",
                    "Course Categories (Admin)",
                    "AdminCourseCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Category"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "adminCourseCategory.store",
                "summary": "Create a course category",
                "tags": [
                    "[Admin] APIs",
                    "Course Categories (Admin)",
                    "AdminCourseCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/course-categories/{id}": {
            "put": {
                "operationId": "adminCourseCategory.update",
                "summary": "Update a course category",
                "tags": [
                    "[Admin] APIs",
                    "Course Categories (Admin)",
                    "AdminCourseCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "adminCourseCategory.destroy",
                "summary": "Delete a course category",
                "tags": [
                    "[Admin] APIs",
                    "Course Categories (Admin)",
                    "AdminCourseCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/courses": {
            "get": {
                "operationId": "admin.courses.index",
                "description": "Supports filters: `status`, `category_id`, `instructor_id`, `search`, `per_page`.",
                "summary": "List all courses (admin view)",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Course"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.courses.store",
                "summary": "Create a new course",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "course_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "general",
                                            "scorm"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "draft",
                                            "active",
                                            "pending",
                                            "rejected",
                                            "private",
                                            "upcoming",
                                            "inactive"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_best": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "level": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "everyone",
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ]
                                    },
                                    "language": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "enable_drip_content": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "expiry_period": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    }
                                },
                                "required": [
                                    "title",
                                    "user_id",
                                    "category_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/courses/pending": {
            "get": {
                "operationId": "admin.courses.pending",
                "summary": "List courses pending admin approval",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Course"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/courses/{id}": {
            "get": {
                "operationId": "admin.courses.show",
                "description": "Includes enrollment count and all course fields.",
                "summary": "Get a single course (admin view)",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.courses.update",
                "summary": "Update a course",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "course_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "general",
                                            "scorm"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "draft",
                                            "active",
                                            "pending",
                                            "rejected",
                                            "private",
                                            "upcoming",
                                            "inactive"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_best": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "level": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "everyone",
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ]
                                    },
                                    "language": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "enable_drip_content": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "banner": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "short_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "expiry_period": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.courses.destroy",
                "summary": "Delete a course",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/courses/{id}/approve": {
            "post": {
                "operationId": "admin.courses.approve",
                "description": "Sets the course status to `active`.",
                "summary": "Approve a pending course",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/courses/{id}/reject": {
            "post": {
                "operationId": "admin.courses.reject",
                "description": "Sets the course status to `rejected`.",
                "summary": "Reject a pending course",
                "tags": [
                    "[Admin] APIs",
                    "Course Management (Admin)",
                    "AdminCourse"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/dashboard/stats": {
            "get": {
                "operationId": "dashboardStats.stats",
                "tags": [
                    "[Admin] APIs",
                    "DashboardStats"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "stats": {
                                            "type": "object",
                                            "properties": {
                                                "users": {
                                                    "type": "object",
                                                    "properties": {
                                                        "students": {
                                                            "type": "integer"
                                                        },
                                                        "instructors": {
                                                            "type": "integer"
                                                        },
                                                        "admins": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "students",
                                                        "instructors",
                                                        "admins"
                                                    ]
                                                },
                                                "finance": {
                                                    "type": "object",
                                                    "properties": {
                                                        "payments_total": {
                                                            "type": "number"
                                                        },
                                                        "pending_offline_payments": {
                                                            "type": "integer"
                                                        },
                                                        "open_payout_requests": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "payments_total",
                                                        "pending_offline_payments",
                                                        "open_payout_requests"
                                                    ]
                                                },
                                                "support": {
                                                    "type": "object",
                                                    "properties": {
                                                        "open_tickets": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "open_tickets"
                                                    ]
                                                },
                                                "applications": {
                                                    "type": "object",
                                                    "properties": {
                                                        "pending_instructor_applications": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "pending_instructor_applications"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "users",
                                                "finance",
                                                "support",
                                                "applications"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "stats"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/demo-requests": {
            "get": {
                "operationId": "demoRequest.index",
                "tags": [
                    "[Admin] APIs",
                    "DemoRequest"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "new",
                                "in_progress",
                                "resolved"
                            ]
                        }
                    },
                    {
                        "name": "solution_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "phone": {
                                                        "type": "string"
                                                    },
                                                    "university": {
                                                        "type": "string"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "message": {
                                                        "type": "string"
                                                    },
                                                    "solution_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "solution_name": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "solution_slug": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "email",
                                                    "phone",
                                                    "university",
                                                    "location",
                                                    "message",
                                                    "solution_id",
                                                    "solution_name",
                                                    "solution_slug",
                                                    "status",
                                                    "created_at"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/demo-requests/{id}": {
            "patch": {
                "operationId": "demoRequest.update",
                "tags": [
                    "[Admin] APIs",
                    "DemoRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "new",
                                            "in_progress",
                                            "resolved"
                                        ]
                                    }
                                },
                                "required": [
                                    "status"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Status updated successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Demo request not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/difficulty-levels": {
            "get": {
                "operationId": "admin.difficultyLevels.index",
                "summary": "List all difficulty levels",
                "tags": [
                    "[Admin] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/DifficultyLevel"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.difficultyLevels.store",
                "summary": "Create a new difficulty level",
                "tags": [
                    "[Admin] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "order": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Difficulty level created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/DifficultyLevel"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/difficulty-levels/{id}": {
            "get": {
                "operationId": "admin.difficultyLevels.show",
                "summary": "Show a single difficulty level",
                "tags": [
                    "[Admin] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.difficultyLevels.update",
                "summary": "Update a difficulty level",
                "tags": [
                    "[Admin] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "order": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Difficulty level updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.difficultyLevels.destroy",
                "summary": "Delete a difficulty level",
                "tags": [
                    "[Admin] APIs",
                    "Difficulty Levels",
                    "DifficultyLevel"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Difficulty level deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/dunning": {
            "get": {
                "operationId": "dunning.index",
                "tags": [
                    "[Admin] APIs",
                    "Dunning"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/PaymentRetry"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/dunning/{id}/cancel": {
            "post": {
                "operationId": "dunning.cancel",
                "tags": [
                    "[Admin] APIs",
                    "Dunning"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Retry cancelled."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Retry record not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/dunning/{id}/retry": {
            "post": {
                "operationId": "dunning.retry",
                "tags": [
                    "[Admin] APIs",
                    "Dunning"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Retry succeeded.",
                                                "Retry failed."
                                            ]
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Retry record not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebook-categories": {
            "get": {
                "operationId": "ebookCategory.index",
                "summary": "List ebook categories",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/EbookCategory"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "ebookCategory.store",
                "summary": "Create a new ebook category",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookCategory"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/EbookCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebook-categories/{id}": {
            "get": {
                "operationId": "ebookCategory.show",
                "summary": "Show one ebook category",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "ebookCategory.update",
                "summary": "Update an ebook category",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "ebookCategory.destroy",
                "summary": "Delete an ebook category",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks": {
            "get": {
                "operationId": "admin.ebooks.index",
                "description": "Supports optional search and category filtering.",
                "summary": "List ebooks for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ebook"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.ebooks.store",
                "summary": "Create an ebook for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "category_id",
                                    "is_paid"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook created successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks/assign": {
            "post": {
                "operationId": "admin.ebooks.assign",
                "description": "Creates an `ebook_gets` record granting the specified user access to\nthe ebook. This endpoint is typically called after admin approval of an\nebook request.",
                "summary": "Assign an ebook to a user",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ebook_id": {
                                        "type": "integer"
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "ebook_id",
                                    "user_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks/requests": {
            "get": {
                "operationId": "admin.ebookrequests.index",
                "description": "Returns all ebook requests with status = 'Requested', paginated at 20\nper page, ordered by newest first. Includes request details and user\ninformation.",
                "summary": "Get all pending ebook requests",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks/requests/{id}/approve": {
            "post": {
                "operationId": "admin.ebookrequests.approve",
                "description": "Approves an ebook request by moving the ebook to the user's library\nand updating the request status to 'Approved'.",
                "summary": "Approve an ebook request",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks/requests/{id}/reject": {
            "post": {
                "operationId": "admin.ebookrequests.reject",
                "description": "Rejects an ebook request by updating its status to 'Rejected'.",
                "summary": "Reject an ebook request",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "EbookRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/ebooks/{id}": {
            "get": {
                "operationId": "admin.ebooks.show",
                "summary": "Show one ebook for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.ebooks.ebook.update_1",
                "summary": "Update one ebook for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook updated successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.ebooks.ebook.update_2",
                "summary": "Update one ebook for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "category_id": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "publication_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "edition": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_paid": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_flag": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "discounted_price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "published_date": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "language_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "summary": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "preview": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 51200
                                    },
                                    "complete": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 102400
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_featured": {
                                        "type": "integer",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook updated successfully"
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ebook"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.ebooks.destroy",
                "summary": "Delete one ebook for admin management",
                "tags": [
                    "[Admin] APIs",
                    "Admin Ebooks",
                    "Ebooks"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ebook not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedback": {
            "get": {
                "operationId": "admin.support.feedback.index_0",
                "summary": "List feedback entries (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Feedback"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedback/{id}": {
            "get": {
                "operationId": "admin.support.feedback.show_0",
                "summary": "Get a single feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.support.feedback.destroy_1",
                "summary": "Delete a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedback/{id}/reply": {
            "post": {
                "operationId": "admin.support.feedback.reply_0",
                "description": "Marks the feedback as replied. The actual email sending is handled\nasynchronously or by the frontend calling a separate mail service.",
                "summary": "Reply to a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reply_message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "reply_message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback marked as replied."
                                        },
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedbacks": {
            "get": {
                "operationId": "admin.support.feedback.index_0__get_v1_admin_feedbacks",
                "summary": "List feedback entries (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Feedback"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedbacks/{id}": {
            "get": {
                "operationId": "admin.support.feedback.show_0__get_v1_admin_feedbacks_id",
                "summary": "Get a single feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.support.feedback.destroy_1__delete_v1_admin_feedbacks_id",
                "summary": "Delete a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/feedbacks/{id}/reply": {
            "post": {
                "operationId": "admin.support.feedback.reply_0__post_v1_admin_feedbacks_id_reply",
                "description": "Marks the feedback as replied. The actual email sending is handled\nasynchronously or by the frontend calling a separate mail service.",
                "summary": "Reply to a feedback entry (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Feedback"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reply_message": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "reply_message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Feedback marked as replied."
                                        },
                                        "feedback": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "feedback"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/fraud/alerts": {
            "get": {
                "operationId": "fraudAlert.index",
                "tags": [
                    "[Admin] APIs",
                    "FraudAlert"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "user_id": {
                                                                "type": "string"
                                                            },
                                                            "blocked_at": {
                                                                "type": "string"
                                                            },
                                                            "flags": {
                                                                "type": "array",
                                                                "items": {
                                                                    "anyOf": [
                                                                        {
                                                                            "type": "object",
                                                                            "properties": {
                                                                                "type": {
                                                                                    "type": "string",
                                                                                    "const": "rapid_payout_changes"
                                                                                },
                                                                                "detail": {
                                                                                    "type": "string"
                                                                                },
                                                                                "severity": {
                                                                                    "type": "string",
                                                                                    "const": "high"
                                                                                }
                                                                            },
                                                                            "required": [
                                                                                "type",
                                                                                "detail",
                                                                                "severity"
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": "object",
                                                                            "properties": {
                                                                                "type": {
                                                                                    "type": "string",
                                                                                    "const": "failed_then_success_pattern"
                                                                                },
                                                                                "detail": {
                                                                                    "type": "string",
                                                                                    "const": "Multiple failed attempts followed by success"
                                                                                },
                                                                                "severity": {
                                                                                    "type": "string",
                                                                                    "const": "medium"
                                                                                }
                                                                            },
                                                                            "required": [
                                                                                "type",
                                                                                "detail",
                                                                                "severity"
                                                                            ]
                                                                        }
                                                                    ]
                                                                }
                                                            }
                                                        },
                                                        "required": [
                                                            "user_id",
                                                            "blocked_at",
                                                            "flags"
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/fraud/users/{userId}/flags": {
            "get": {
                "operationId": "fraudAlert.userFlags",
                "tags": [
                    "[Admin] APIs",
                    "FraudAlert"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "user_id": {
                                            "type": "integer"
                                        },
                                        "flags": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "type": {
                                                                "type": "string",
                                                                "const": "rapid_payout_changes"
                                                            },
                                                            "detail": {
                                                                "type": "string"
                                                            },
                                                            "severity": {
                                                                "type": "string",
                                                                "const": "high"
                                                            }
                                                        },
                                                        "required": [
                                                            "type",
                                                            "detail",
                                                            "severity"
                                                        ]
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "type": {
                                                                "type": "string",
                                                                "const": "failed_then_success_pattern"
                                                            },
                                                            "detail": {
                                                                "type": "string",
                                                                "const": "Multiple failed attempts followed by success"
                                                            },
                                                            "severity": {
                                                                "type": "string",
                                                                "const": "medium"
                                                            }
                                                        },
                                                        "required": [
                                                            "type",
                                                            "detail",
                                                            "severity"
                                                        ]
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "user_id",
                                        "flags"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/fraud/users/{userId}/unblock": {
            "post": {
                "operationId": "fraudAlert.unblock",
                "tags": [
                    "[Admin] APIs",
                    "FraudAlert"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User unblocked."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Not available."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications": {
            "get": {
                "operationId": "instructorApplication.index",
                "description": "Supports optional `?status=` filter (`submitted`, `quiz_invited`, `quiz_submitted`, `approved`, `rejected`, `active`).",
                "summary": "List instructor applications",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "array",
                                                "items": []
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/bulk-invite-workshop": {
            "post": {
                "operationId": "instructorApplication.bulkInviteWorkshop",
                "summary": "Invite multiple instructor applications to the same workshop bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "bootcamp_id": {
                                        "type": "integer"
                                    },
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    },
                                    "application_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1,
                                        "maxItems": 50
                                    }
                                },
                                "required": [
                                    "bootcamp_id",
                                    "application_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/vip-invite": {
            "post": {
                "operationId": "instructorApplication.createVipInvite",
                "summary": "Create a VIP instructor invite and optionally send the invite email",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "applicant_name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "applicant_email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "internal_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    },
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "applicant_name",
                                    "applicant_email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "VIP instructor invite created and email sent.",
                                                "VIP instructor invite created. Copy the invite link below.",
                                                "VIP instructor invite created."
                                            ]
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "invite_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "expires_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "invite_url",
                                        "expires_at",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}": {
            "delete": {
                "operationId": "instructorApplication.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "reason",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 2000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application rejected."
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/activate": {
            "post": {
                "operationId": "instructorApplication.activate",
                "summary": "Activate instructor platform access after the onboarding workshop",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Instructor account created and platform onboarding email sent.",
                                                "Instructor account created, but the onboarding email could not be sent.",
                                                "Instructor access activated and platform onboarding email sent.",
                                                "Instructor access activated, but the onboarding email could not be sent."
                                            ]
                                        },
                                        "notification_sent": {
                                            "type": "string"
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "application",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Application must be approved with a bootcamp workshop invite sent before activation.",
                                                "Only approved applications awaiting post-workshop activation can be activated."
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/activate-vip": {
            "post": {
                "operationId": "instructorApplication.activateVip",
                "summary": "Activate a VIP instructor after profile submission (skips workshop)",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Instructor account created and platform onboarding email sent.",
                                                "Instructor account created, but the onboarding email could not be sent.",
                                                "Instructor access activated and platform onboarding email sent.",
                                                "Instructor access activated, but the onboarding email could not be sent."
                                            ]
                                        },
                                        "notification_sent": {
                                            "type": "string"
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "application",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Application must be approved with a bootcamp workshop invite sent before activation.",
                                                        "Only approved applications awaiting post-workshop activation can be activated."
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Only VIP applications with a submitted profile can be activated."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/approve": {
            "post": {
                "operationId": "instructorApplication.approve",
                "summary": "Approve a successful applicant and send the onboarding workshop invitation email",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "bootcamp_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "bootcamp_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Application approved. Workshop invitation email sent.",
                                                        "Application approved, but the workshop invitation email could not be sent."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "workshop_confirm_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "application": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "workshop_confirm_url",
                                                "application"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/invite-workshop": {
            "post": {
                "operationId": "instructorApplication.inviteWorkshop",
                "summary": "Invite an application holder (including VIP) to a workshop bootcamp",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "bootcamp_id": {
                                        "type": "integer"
                                    },
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "bootcamp_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Workshop invitation sent.",
                                                        "Workshop invite created. Copy the confirmation link if needed."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "workshop_confirm_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "application": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "invite": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "bootcamp_id": {
                                                            "type": "integer"
                                                        },
                                                        "invitee_name": {
                                                            "type": "string"
                                                        },
                                                        "invitee_email": {
                                                            "type": "string"
                                                        },
                                                        "user_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "application_id": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_by": {
                                                            "type": [
                                                                "integer",
                                                                "null"
                                                            ]
                                                        },
                                                        "invited_at": {
                                                            "type": "string"
                                                        },
                                                        "last_invite_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmed_at": {
                                                            "type": "string"
                                                        },
                                                        "confirmation_method": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "source": {
                                                            "type": "string"
                                                        },
                                                        "cancelled_at": {
                                                            "type": "string"
                                                        },
                                                        "reminders_sent": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "array",
                                                                    "items": []
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    },
                                                                    "minItems": 0,
                                                                    "maxItems": 0,
                                                                    "additionalItems": false
                                                                }
                                                            ]
                                                        },
                                                        "last_reminder_sent_at": {
                                                            "type": "string"
                                                        },
                                                        "status": {
                                                            "type": "string",
                                                            "enum": [
                                                                "cancelled",
                                                                "confirmed",
                                                                "invited"
                                                            ]
                                                        },
                                                        "pending_access_request": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "boolean"
                                                                }
                                                            ]
                                                        },
                                                        "application": {
                                                            "$ref": "#/components/schemas/Application"
                                                        },
                                                        "user": {
                                                            "$ref": "#/components/schemas/User"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "bootcamp_id",
                                                        "invitee_name",
                                                        "invitee_email",
                                                        "user_id",
                                                        "application_id",
                                                        "invited_by",
                                                        "invited_at",
                                                        "last_invite_sent_at",
                                                        "confirmed_at",
                                                        "confirmation_method",
                                                        "source",
                                                        "cancelled_at",
                                                        "reminders_sent",
                                                        "last_reminder_sent_at",
                                                        "status",
                                                        "pending_access_request",
                                                        "application",
                                                        "user"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "workshop_confirm_url",
                                                "expires_at",
                                                "application",
                                                "invite"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/quiz-attempts": {
            "get": {
                "operationId": "instructorApplication.quizAttempts",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "passed",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "application": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "applicant_name": {
                                                    "type": "string"
                                                },
                                                "applicant_email": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "applicant_name",
                                                "applicant_email",
                                                "status"
                                            ]
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "application_id": {
                                                        "type": "integer"
                                                    },
                                                    "quiz_id": {
                                                        "type": "integer"
                                                    },
                                                    "quiz_title": {
                                                        "type": "string"
                                                    },
                                                    "quiz_category_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "quiz_category_title": {
                                                        "type": "string"
                                                    },
                                                    "attempt_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "score_percent": {
                                                        "type": "number"
                                                    },
                                                    "score_on_total": {
                                                        "type": "number"
                                                    },
                                                    "total_mark": {
                                                        "type": "number"
                                                    },
                                                    "pass_mark": {
                                                        "type": "number"
                                                    },
                                                    "passed": {
                                                        "type": "boolean"
                                                    },
                                                    "points": {
                                                        "type": "integer"
                                                    },
                                                    "correct_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_questions": {
                                                        "type": "integer"
                                                    },
                                                    "completed_seconds": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "awarded_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "submitted_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "application_id",
                                                    "quiz_id",
                                                    "quiz_title",
                                                    "quiz_category_id",
                                                    "quiz_category_title",
                                                    "attempt_id",
                                                    "score_percent",
                                                    "score_on_total",
                                                    "total_mark",
                                                    "pass_mark",
                                                    "passed",
                                                    "points",
                                                    "correct_count",
                                                    "total_questions",
                                                    "completed_seconds",
                                                    "awarded_at",
                                                    "submitted_at",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "application",
                                        "data",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz attempts are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/resend-vip-invite": {
            "post": {
                "operationId": "instructorApplication.resendVipInvite",
                "summary": "Resend a VIP instructor invite email",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "VIP invite resent.",
                                                        "New VIP invite link generated.",
                                                        "VIP invite prepared, but the email could not be sent."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "invite_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": "string"
                                                },
                                                "application": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "invite_url",
                                                "expires_at",
                                                "application"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/resend-workshop-invite": {
            "post": {
                "operationId": "instructorApplication.resendWorkshopInvite",
                "summary": "Resend the onboarding workshop invitation email (new confirm token)",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_invite": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "enum": [
                                                        "Workshop invitation resent.",
                                                        "New workshop confirmation link generated.",
                                                        "Workshop invite prepared, but the email could not be sent."
                                                    ]
                                                },
                                                "notification_sent": {
                                                    "type": "boolean"
                                                },
                                                "workshop_confirm_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": "string"
                                                },
                                                "application": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "notification_sent",
                                                "workshop_confirm_url",
                                                "expires_at",
                                                "application"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-applications/{id}/send-quiz-access": {
            "post": {
                "operationId": "instructorApplication.sendQuizAccessInvite",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Applications (Admin)",
                    "InstructorApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz access invite sent successfully."
                                        },
                                        "application_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "anyOf": [
                                                {
                                                    "type": "null"
                                                },
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        ""
                                                    ]
                                                }
                                            ]
                                        },
                                        "expires_at": {
                                            "type": "string"
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application_id",
                                        "email",
                                        "expires_at",
                                        "notification_sent",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send quiz access invite email."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "A valid applicant email is required before sending quiz access."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz access invite can only be sent while the application is in screening."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz access tokens are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructor-settings": {
            "get": {
                "operationId": "admin.instructorSettings.show",
                "description": "Returns `allow_instructor` (open/close applications), `instructor_revenue`\n(platform revenue split percentage), and `instructor_application_note`.",
                "summary": "Get global instructor settings",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Settings (Admin)",
                    "InstructorSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "allow_instructor": [],
                                        "instructor_revenue": [],
                                        "instructor_application_note": []
                                    },
                                    "required": [
                                        "allow_instructor",
                                        "instructor_revenue",
                                        "instructor_application_note"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.instructorSettings.update",
                "description": "All fields are optional; only provided keys are updated.",
                "summary": "Update global instructor settings",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Settings (Admin)",
                    "InstructorSettings"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "allow_instructor": {
                                        "type": "string",
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "instructor_revenue": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                    },
                                    "instructor_application_note": {
                                        "type": "string",
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors": {
            "get": {
                "operationId": "admin.users.instructors_0__get_v1_admin_instructors",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "instructor"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/preview-profile-reminder": {
            "post": {
                "operationId": "users.previewInstructorProfileReminder",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "instructor_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "instructor_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Instructor profile reminder preview generated."
                                        },
                                        "subject": {
                                            "type": "string",
                                            "const": "Complete Your Alkademy Tutor Profile to Unlock More Student Reach"
                                        },
                                        "instructor_name": {
                                            "type": "string"
                                        },
                                        "instructorName": {
                                            "type": "string"
                                        },
                                        "profile_url": {
                                            "type": "string"
                                        },
                                        "html": {
                                            "type": "string"
                                        },
                                        "preview_html": {
                                            "type": "string"
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": {
                                                    "type": "string",
                                                    "const": "Complete Your Alkademy Tutor Profile to Unlock More Student Reach"
                                                },
                                                "instructor_name": {
                                                    "type": "string"
                                                },
                                                "instructorName": {
                                                    "type": "string"
                                                },
                                                "profile_url": {
                                                    "type": "string"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "instructor_name",
                                                "instructorName",
                                                "profile_url",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject",
                                        "instructor_name",
                                        "instructorName",
                                        "profile_url",
                                        "html",
                                        "preview_html",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Instructor not found for the provided instructor_id."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/search": {
            "get": {
                "operationId": "users.searchInstructorsForWorkshop",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "bootcamp_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/send-profile-reminder": {
            "post": {
                "operationId": "users.sendInstructorProfileReminderBulk",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "instructor_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "instructor_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk profile reminder email dispatch completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "requested": {
                                                    "type": "integer"
                                                },
                                                "processed_instructors": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "non_instructor_or_missing": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "requested",
                                                "processed_instructors",
                                                "sent",
                                                "failed",
                                                "non_instructor_or_missing"
                                            ]
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "instructor_id": {
                                                        "type": "integer"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "sent": {
                                                        "type": "string"
                                                    },
                                                    "error": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "instructor_id",
                                                    "email",
                                                    "sent",
                                                    "error"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "results"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{id}/revoke-access": {
            "post": {
                "operationId": "users.revokeAccess",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Instructor access revoked. User is now a student."
                                        },
                                        "user": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "This user is not an instructor."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{id}/send-profile-reminder": {
            "post": {
                "operationId": "users.sendInstructorProfileReminder",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Profile reminder email sent successfully."
                                        },
                                        "instructor_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "instructor_id",
                                        "email"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Profile reminder email could not be sent."
                                        },
                                        "instructor_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "instructor_id",
                                        "email",
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{userId}/payout-settings": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.index_0",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "message": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "No payout settings configured."
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.payments.instructorPayoutDetails.store_1",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePayoutSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout method added."
                                        },
                                        "payout_settings": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "payout_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_number": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_branch": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bic_swift": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_iban": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_tag": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_primary": {
                                                    "type": "boolean"
                                                },
                                                "verification_status": {
                                                    "type": "string"
                                                },
                                                "verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "settings_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "payout_method",
                                                "payout_account_name",
                                                "payout_account_number",
                                                "payout_bank_name",
                                                "payout_bank_branch",
                                                "payout_bic_swift",
                                                "payout_iban",
                                                "payout_currency",
                                                "payout_tag",
                                                "payout_account_email",
                                                "payout_notes",
                                                "is_primary",
                                                "verification_status",
                                                "verified_at",
                                                "settings_changed_at",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{userId}/payout-settings-audit": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.auditLog_0",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/PayoutSettingsAudit"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{userId}/payout-settings/{settingsId}": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.show_0",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "payout_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_number": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_branch": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bic_swift": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_iban": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_tag": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_primary": {
                                                    "type": "boolean"
                                                },
                                                "verification_status": {
                                                    "type": "string"
                                                },
                                                "verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "settings_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "payout_method",
                                                "payout_account_name",
                                                "payout_account_number",
                                                "payout_bank_name",
                                                "payout_bank_branch",
                                                "payout_bic_swift",
                                                "payout_iban",
                                                "payout_currency",
                                                "payout_tag",
                                                "payout_account_email",
                                                "payout_notes",
                                                "is_primary",
                                                "verification_status",
                                                "verified_at",
                                                "settings_changed_at",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.payments.instructorPayoutDetails.update_1",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "message": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "No payout settings configured."
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.payments.instructorPayoutDetails.destroy_2",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/instructors/{userId}/payout-settings/{settingsId}/primary": {
            "patch": {
                "operationId": "admin.payments.instructorPayoutDetails.setPrimary_0",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internship-applications": {
            "get": {
                "operationId": "admin.internships.applications.index",
                "summary": "List internship applications for admin review",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InternshipApplication"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internship-applications/{id}/approve": {
            "post": {
                "operationId": "admin.internships.applications.approve",
                "summary": "Approve an internship application and create the internship record",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "duration_months": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 24
                                    },
                                    "local_supervisor_id": {
                                        "type": "integer"
                                    },
                                    "academic_supervisor_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "start_date",
                                    "duration_months",
                                    "local_supervisor_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application approved and internship created."
                                        },
                                        "internship": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "internship"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internship-applications/{id}/quiz-attempts": {
            "get": {
                "operationId": "admin.internships.applications.quizAttempts",
                "summary": "List submitted applicant quiz attempts for an internship application",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "quiz_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "passed",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ApplicantQuizPoint"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Internship applicant quiz support is not enabled. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Applicant quiz attempts are not enabled. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internship-applications/{id}/reject": {
            "post": {
                "operationId": "admin.internships.applications.reject",
                "summary": "Reject an internship application",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "review_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application rejected."
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/InternshipApplication"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internship-applications/{id}/send-quiz-access": {
            "post": {
                "operationId": "admin.internships.applications.sendQuizAccessInvite",
                "summary": "Send screening quiz access invitation for a pending internship application",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz access invite sent successfully."
                                        },
                                        "application_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        },
                                        "expires_at": {
                                            "type": "string"
                                        },
                                        "application": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application_id",
                                        "email",
                                        "expires_at",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send quiz access invite email."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "A valid student email is required before sending quiz access."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz access invite can only be sent while the application is in screening."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz access tokens are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships": {
            "get": {
                "operationId": "admin.internships.index",
                "summary": "List internships managed by admins",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Internship"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}": {
            "get": {
                "operationId": "admin.internships.show",
                "summary": "Show a single internship",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "internship": {
                                            "$ref": "#/components/schemas/Internship"
                                        }
                                    },
                                    "required": [
                                        "internship"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.internships.update",
                "summary": "Update internship metadata",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "maxLength": 30
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "duration_months": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 24
                                    },
                                    "local_supervisor_id": {
                                        "type": "integer"
                                    },
                                    "academic_supervisor_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Internship updated."
                                        },
                                        "internship": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Internship"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "internship"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}/cancel": {
            "post": {
                "operationId": "admin.internships.cancel",
                "summary": "Cancel an internship",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 3000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Internship cancelled."
                                        },
                                        "internship": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Internship"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "internship"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}/certificate": {
            "get": {
                "operationId": "internshipCertificate.show",
                "tags": [
                    "[Admin] APIs",
                    "InternshipCertificate"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "internship_id": {
                                            "type": "integer"
                                        },
                                        "certificate": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "certificate_number": {
                                                    "type": "string"
                                                },
                                                "issued_at": {
                                                    "type": "string"
                                                },
                                                "issue_source": {
                                                    "type": "string"
                                                },
                                                "download_available": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "certificate_number",
                                                "issued_at",
                                                "issue_source",
                                                "download_available"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "internship_id",
                                        "certificate"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}/certificate/download": {
            "get": {
                "operationId": "internshipCertificate.download",
                "summary": "Download or view the internship certificate PDF",
                "tags": [
                    "[Admin] APIs",
                    "InternshipCertificate"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}/certificate/generate": {
            "post": {
                "operationId": "internshipCertificate.generate",
                "tags": [
                    "[Admin] APIs",
                    "InternshipCertificate"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reissue": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "enum": [
                                                "Certificate re-issued.",
                                                "Certificate generated."
                                            ]
                                        },
                                        "certificate": {
                                            "type": "object",
                                            "properties": {
                                                "certificate_number": {
                                                    "type": "string"
                                                },
                                                "issued_at": {
                                                    "type": "string"
                                                },
                                                "issue_source": {
                                                    "type": "string"
                                                },
                                                "download_available": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "certificate_number",
                                                "issued_at",
                                                "issue_source",
                                                "download_available"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "certificate"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/internships/{id}/complete": {
            "post": {
                "operationId": "admin.internships.complete",
                "summary": "Mark an internship as completed",
                "tags": [
                    "[Admin] APIs",
                    "InternshipManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Internship marked as completed."
                                        },
                                        "internship": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Internship"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "internship"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only active internships can be marked as completed."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices": {
            "get": {
                "operationId": "admin.invoices.invoice.index",
                "tags": [
                    "[Admin] APIs",
                    "Invoice"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Invoice"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/export/csv": {
            "get": {
                "operationId": "export.csv",
                "tags": [
                    "[Admin] APIs",
                    "Export"
                ],
                "parameters": [
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "invoice",
                                "credit_note",
                                "proforma"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "draft",
                                "issued",
                                "paid",
                                "refunded",
                                "voided"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No invoice data available."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/export/json": {
            "get": {
                "operationId": "export.json",
                "tags": [
                    "[Admin] APIs",
                    "Export"
                ],
                "parameters": [
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "invoice",
                                "credit_note",
                                "proforma"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "draft",
                                "issued",
                                "paid",
                                "refunded",
                                "voided"
                            ]
                        }
                    },
                    {
                        "name": "format",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "standard",
                                "quickbooks",
                                "xero"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "format": {
                                                    "anyOf": [
                                                        {
                                                            "type": "string"
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": []
                                                        },
                                                        {
                                                            "type": "null"
                                                        }
                                                    ]
                                                },
                                                "exported_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "format",
                                                "exported_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No invoice data available."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/export/summary": {
            "get": {
                "operationId": "export.summary",
                "tags": [
                    "[Admin] APIs",
                    "Export"
                ],
                "parameters": [
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "format": "date-time"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Invoice"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/proforma": {
            "get": {
                "operationId": "proforma.index",
                "tags": [
                    "[Admin] APIs",
                    "Proforma"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Invoice"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "proforma.store",
                "tags": [
                    "[Admin] APIs",
                    "Proforma"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3
                                    },
                                    "due_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "validity_days": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 90
                                    },
                                    "tax_amount": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "discount_amount": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "billing": {
                                        "type": "object",
                                        "properties": {
                                            "billing_name": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "billing_company": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "billing_address_line_1": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 255
                                            },
                                            "billing_city": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 100
                                            },
                                            "billing_country": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "maxLength": 2
                                            }
                                        }
                                    },
                                    "line_items": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "description": {
                                                    "type": "string",
                                                    "maxLength": 500
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "minimum": 1
                                                },
                                                "unit_price": {
                                                    "type": "number",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "description",
                                                "quantity",
                                                "unit_price"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "user_id",
                                    "currency",
                                    "line_items"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Proforma invoice created."
                                        },
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Invoice"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "payment_link": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "payment_link"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to create proforma invoice."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/proforma/{id}": {
            "get": {
                "operationId": "proforma.show",
                "tags": [
                    "[Admin] APIs",
                    "Proforma"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Invoice"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        },
                                        "payment_link": {
                                            "type": "string"
                                        },
                                        "is_expired": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "payment_link",
                                        "is_expired"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Proforma invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/proforma/{id}/void": {
            "post": {
                "operationId": "proforma.void",
                "tags": [
                    "[Admin] APIs",
                    "Proforma"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Proforma invoice voided."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cannot void a paid proforma invoice."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Proforma invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/{id}": {
            "get": {
                "operationId": "admin.invoices.invoice.show",
                "tags": [
                    "[Admin] APIs",
                    "Invoice"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        },
                                        "related_invoice": {
                                            "type": "string"
                                        },
                                        "credit_notes": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Invoice"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "related_invoice",
                                        "credit_notes"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications": {
            "get": {
                "operationId": "admin.vacancies.jobApplication.index",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "vacancy_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/JobApplication"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications/{id}": {
            "get": {
                "operationId": "admin.vacancies.jobApplication.show",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.vacancies.jobApplication.destroy",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "reason",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 2000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application rejected."
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "patch": {
                "operationId": "admin.vacancies.jobApplication.update",
                "description": "Use workflow endpoints instead.",
                "deprecated": true,
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Direct status updates are disabled. Use shortlist-and-invite, send-quiz-access, hire, or reject endpoints."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications/{id}/hire": {
            "post": {
                "operationId": "jobApplication.hire",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Application marked as hired."
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "notification_sent",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Applicant must pass the screening quiz before being hired."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Only applications under review can be marked as hired."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications/{id}/quiz-attempts": {
            "get": {
                "operationId": "jobApplication.quizAttempts",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ApplicantQuizPoint"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Job application quiz attempts are not enabled. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Applicant quiz attempts are not enabled. Run migrations first."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications/{id}/send-quiz-access": {
            "post": {
                "operationId": "jobApplication.sendQuizAccessInvite",
                "summary": "Resend quiz access invitation",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz access invite sent successfully."
                                        },
                                        "application_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "expires_at": {
                                            "type": "string"
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application_id",
                                        "email",
                                        "expires_at",
                                        "notification_sent",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send quiz access invite email."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "A valid applicant email is required before sending quiz access."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz access invite can only be sent while the application is shortlisted or under review."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz access tokens are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/job-applications/{id}/shortlist-and-invite": {
            "post": {
                "operationId": "jobApplication.shortlistAndInvite",
                "summary": "Shortlist applicant and send the first quiz invite in one action",
                "tags": [
                    "[Admin] APIs",
                    "JobApplication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz access invite sent successfully."
                                        },
                                        "application_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "expires_at": {
                                            "type": "string"
                                        },
                                        "notification_sent": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application_id",
                                        "email",
                                        "expires_at",
                                        "notification_sent",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Failed to send quiz access invite email."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "A valid applicant email is required before sending quiz access."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Only submitted applications can be shortlisted and invited to the quiz."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Applicant quiz access tokens are not enabled. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/live-classes": {
            "get": {
                "operationId": "admin.liveClasses.liveClassManagement.index",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "user_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_topic": {
                                                        "type": "string"
                                                    },
                                                    "note": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "provider": {
                                                        "type": "string"
                                                    },
                                                    "duration_hours": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "credit_weight": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_free": {
                                                        "type": "boolean"
                                                    },
                                                    "thumbnail": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "thumbnail_url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "class_date_and_time": {
                                                        "type": "string"
                                                    },
                                                    "class_timezone": {
                                                        "type": "string"
                                                    },
                                                    "timezone": {
                                                        "type": "string"
                                                    },
                                                    "start_at": {
                                                        "type": "string"
                                                    },
                                                    "end_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "additional_info": {
                                                        "anyOf": [
                                                            {
                                                                "type": "null"
                                                            },
                                                            {
                                                                "type": "object"
                                                            },
                                                            {
                                                                "type": "string"
                                                            }
                                                        ]
                                                    },
                                                    "course": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "title": {
                                                                "type": "string"
                                                            },
                                                            "slug": {
                                                                "type": "string"
                                                            },
                                                            "is_paid": {
                                                                "type": "integer"
                                                            },
                                                            "price": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "thumbnail_url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "title",
                                                            "slug",
                                                            "is_paid",
                                                            "price",
                                                            "thumbnail",
                                                            "thumbnail_url"
                                                        ]
                                                    },
                                                    "instructor": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            },
                                                            "role": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "photo": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email",
                                                            "role",
                                                            "photo"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "updated_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "signup_count": {
                                                        "type": "integer"
                                                    },
                                                    "bookings_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_bookings": {
                                                        "type": "integer"
                                                    },
                                                    "total_seats": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "seats_available": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_full": {
                                                        "type": "string"
                                                    },
                                                    "zoom_meeting_ready": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "course_id",
                                                    "user_id",
                                                    "class_topic",
                                                    "note",
                                                    "provider",
                                                    "duration_hours",
                                                    "credit_weight",
                                                    "is_free",
                                                    "thumbnail",
                                                    "thumbnail_url",
                                                    "class_date_and_time",
                                                    "class_timezone",
                                                    "timezone",
                                                    "start_at",
                                                    "end_at",
                                                    "additional_info",
                                                    "course",
                                                    "instructor",
                                                    "created_at",
                                                    "updated_at",
                                                    "signup_count",
                                                    "bookings_count",
                                                    "total_bookings",
                                                    "total_seats",
                                                    "seats_available",
                                                    "is_full",
                                                    "zoom_meeting_ready"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.liveClasses.liveClassManagement.store",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreLiveClassRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/live-classes/{id}": {
            "get": {
                "operationId": "admin.liveClasses.liveClassManagement.show",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "class_topic": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "provider": {
                                                    "type": "string"
                                                },
                                                "duration_hours": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "credit_weight": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_free": {
                                                    "type": "boolean"
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": "string"
                                                },
                                                "class_timezone": {
                                                    "type": "string"
                                                },
                                                "timezone": {
                                                    "type": "string"
                                                },
                                                "start_at": {
                                                    "type": "string"
                                                },
                                                "end_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "additional_info": {
                                                    "anyOf": [
                                                        {
                                                            "type": "null"
                                                        },
                                                        {
                                                            "type": "object"
                                                        },
                                                        {
                                                            "type": "string"
                                                        }
                                                    ]
                                                },
                                                "course": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "is_paid": {
                                                            "type": "integer"
                                                        },
                                                        "price": {
                                                            "type": [
                                                                "number",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail_url": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "is_paid",
                                                        "price",
                                                        "thumbnail",
                                                        "thumbnail_url"
                                                    ]
                                                },
                                                "instructor": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "role": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "role",
                                                        "photo"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "bookings_count": {
                                                    "type": "integer"
                                                },
                                                "total_bookings": {
                                                    "type": "integer"
                                                },
                                                "total_seats": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "seats_available": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_full": {
                                                    "type": "string"
                                                },
                                                "zoom_meeting_ready": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "user_id",
                                                "class_topic",
                                                "note",
                                                "provider",
                                                "duration_hours",
                                                "credit_weight",
                                                "is_free",
                                                "thumbnail",
                                                "thumbnail_url",
                                                "class_date_and_time",
                                                "class_timezone",
                                                "timezone",
                                                "start_at",
                                                "end_at",
                                                "additional_info",
                                                "course",
                                                "instructor",
                                                "created_at",
                                                "updated_at",
                                                "signup_count",
                                                "bookings_count",
                                                "total_bookings",
                                                "total_seats",
                                                "seats_available",
                                                "is_full",
                                                "zoom_meeting_ready"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.liveClasses.liveClassManagement.update",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateLiveClassRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": []
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.liveClasses.liveClassManagement.destroy",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/live-classes/{id}/meeting/retry": {
            "post": {
                "operationId": "admin.liveClasses.liveClassManagement.retryMeeting",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Zoom meeting provisioned successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "course_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "class_topic": {
                                                    "type": "string"
                                                },
                                                "note": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "provider": {
                                                    "type": "string"
                                                },
                                                "duration_hours": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "credit_weight": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_free": {
                                                    "type": "boolean"
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "thumbnail_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "class_date_and_time": {
                                                    "type": "string"
                                                },
                                                "class_timezone": {
                                                    "type": "string"
                                                },
                                                "timezone": {
                                                    "type": "string"
                                                },
                                                "start_at": {
                                                    "type": "string"
                                                },
                                                "end_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "additional_info": {
                                                    "anyOf": [
                                                        {
                                                            "type": "null"
                                                        },
                                                        {
                                                            "type": "object"
                                                        },
                                                        {
                                                            "type": "string"
                                                        }
                                                    ]
                                                },
                                                "course": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "is_paid": {
                                                            "type": "integer"
                                                        },
                                                        "price": {
                                                            "type": [
                                                                "number",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "thumbnail_url": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "slug",
                                                        "is_paid",
                                                        "price",
                                                        "thumbnail",
                                                        "thumbnail_url"
                                                    ]
                                                },
                                                "instructor": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        },
                                                        "role": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "photo": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email",
                                                        "role",
                                                        "photo"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "signup_count": {
                                                    "type": "integer"
                                                },
                                                "bookings_count": {
                                                    "type": "integer"
                                                },
                                                "total_bookings": {
                                                    "type": "integer"
                                                },
                                                "total_seats": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "seats_available": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "is_full": {
                                                    "type": "string"
                                                },
                                                "zoom_meeting_ready": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "course_id",
                                                "user_id",
                                                "class_topic",
                                                "note",
                                                "provider",
                                                "duration_hours",
                                                "credit_weight",
                                                "is_free",
                                                "thumbnail",
                                                "thumbnail_url",
                                                "class_date_and_time",
                                                "class_timezone",
                                                "timezone",
                                                "start_at",
                                                "end_at",
                                                "additional_info",
                                                "course",
                                                "instructor",
                                                "created_at",
                                                "updated_at",
                                                "signup_count",
                                                "bookings_count",
                                                "total_bookings",
                                                "total_seats",
                                                "seats_available",
                                                "is_full",
                                                "zoom_meeting_ready"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/live-classes/{id}/signature": {
            "get": {
                "operationId": "admin.liveClasses.liveClassManagement.signature",
                "summary": "Return a short-lived Zoom SDK JWT so an instructor/admin can join as host (role=1)",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "signature": {
                                            "type": "string"
                                        },
                                        "sdkKey": {
                                            "type": "string"
                                        },
                                        "meetingNumber": {
                                            "type": "string"
                                        },
                                        "password": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "signature",
                                        "sdkKey",
                                        "meetingNumber",
                                        "password"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Meeting details are not configured for this class."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Zoom signature is only available for Zoom live classes."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/live-classes/{id}/start": {
            "get": {
                "operationId": "admin.liveClasses.liveClassManagement.start",
                "description": "When zoom_web_sdk is \"active\" the frontend should call the matching\nsignature endpoint to obtain a JWT, then launch the Zoom Meeting SDK.\nWhen the SDK is disabled the frontend should redirect to start_url.",
                "summary": "Return join details so an instructor/admin can start a class as host",
                "tags": [
                    "[Admin] APIs",
                    "LiveClassManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "provider": {
                                            "type": "string",
                                            "const": "zoom"
                                        },
                                        "zoom_sdk": {
                                            "type": "string"
                                        },
                                        "meeting_id": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "meeting_password": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "signature_endpoint": {
                                            "type": "string"
                                        },
                                        "start_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "join_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "provider",
                                        "zoom_sdk",
                                        "meeting_id",
                                        "meeting_password",
                                        "signature_endpoint",
                                        "start_url",
                                        "join_url"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Start is only supported for Zoom live classes."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Live class not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/access": {
            "get": {
                "operationId": "access.me",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "access": {
                                            "type": "object",
                                            "properties": {
                                                "permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "department": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug"
                                                    ]
                                                },
                                                "granted_permissions": {
                                                    "type": "string"
                                                },
                                                "revoked_permissions": {
                                                    "type": "string"
                                                },
                                                "is_super_admin": {
                                                    "type": "boolean"
                                                },
                                                "is_root_admin": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "permissions",
                                                "department",
                                                "granted_permissions",
                                                "revoked_permissions",
                                                "is_super_admin",
                                                "is_root_admin"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings": {
            "get": {
                "operationId": "instructor.profile.profile.payoutSettings_0__get_v1_admin_me_payout_settings",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "instructor.profile.profile.createPayoutSettings_1__post_v1_admin_me_payout_settings",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePayoutSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout method added."
                                        },
                                        "payout_settings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "payout_settings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.profile.profile.deletePayoutSettings_2__delete_v1_admin_me_payout_settings",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payout settings deleted."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No payout settings found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/update": {
            "post": {
                "operationId": "instructor.profile.profile.updatePayoutSettings_0__post_v1_admin_me_payout_settings_update",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/verify": {
            "post": {
                "operationId": "instructor.profile.profile.initiateVerification_0__post_v1_admin_me_payout_settings_verify",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/verify/confirm": {
            "post": {
                "operationId": "instructor.profile.profile.confirmVerification_0__post_v1_admin_me_payout_settings_verify_confirm",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "minLength": 6,
                                        "maxLength": 6
                                    }
                                },
                                "required": [
                                    "code"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/{id}": {
            "put": {
                "operationId": "instructor.profile.profile.updatePayoutSettings_0__put_v1_admin_me_payout_settings_id",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorPayoutSettings"
                                                    }
                                                },
                                                "cooldown": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "payout_settings",
                                                "cooldown"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "payout_settings": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "payout_settings"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "instructor.profile.profile.deletePayoutSettings_1__delete_v1_admin_me_payout_settings_id",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payout settings deleted."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No payout settings found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "string"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/{id}/primary": {
            "patch": {
                "operationId": "instructor.profile.profile.setPrimaryPayoutSettings_0__patch_v1_admin_me_payout_settings_id_primary",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/{id}/verify": {
            "post": {
                "operationId": "instructor.profile.profile.initiateVerification_0__post_v1_admin_me_payout_settings_id_verify",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/me/payout-settings/{id}/verify/confirm": {
            "post": {
                "operationId": "instructor.profile.profile.confirmVerification_0__post_v1_admin_me_payout_settings_id_verify_confirm",
                "tags": [
                    "[Admin] APIs",
                    "Instructor Profile",
                    "Profile"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "default": null
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "minLength": 6,
                                        "maxLength": 6
                                    }
                                },
                                "required": [
                                    "code"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout settings not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_admin_newsletter",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.sendCampaign_1__post_v1_admin_newsletter",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/analytics": {
            "get": {
                "operationId": "admin.newsletter.analytics_0",
                "summary": "Aggregate delivery analytics across all campaigns or a single campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "campaign_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "totals": {
                                                    "type": "object",
                                                    "properties": {
                                                        "campaigns": {
                                                            "type": "integer"
                                                        },
                                                        "recipients": {
                                                            "type": "integer"
                                                        },
                                                        "sent": {
                                                            "type": "integer"
                                                        },
                                                        "failed": {
                                                            "type": "integer"
                                                        },
                                                        "delivery_rate_pct": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "number"
                                                                },
                                                                {
                                                                    "type": "integer",
                                                                    "enum": [
                                                                        0
                                                                    ]
                                                                }
                                                            ]
                                                        },
                                                        "completed": {
                                                            "type": "integer"
                                                        },
                                                        "completed_with_errors": {
                                                            "type": "integer"
                                                        },
                                                        "failed_campaigns": {
                                                            "type": "integer"
                                                        },
                                                        "cancelled": {
                                                            "type": "integer"
                                                        },
                                                        "in_progress": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "campaigns",
                                                        "recipients",
                                                        "sent",
                                                        "failed",
                                                        "delivery_rate_pct",
                                                        "completed",
                                                        "completed_with_errors",
                                                        "failed_campaigns",
                                                        "cancelled",
                                                        "in_progress"
                                                    ]
                                                },
                                                "history": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "records": {
                                                            "type": "integer"
                                                        },
                                                        "sent": {
                                                            "type": "integer"
                                                        },
                                                        "failed": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "records",
                                                        "sent",
                                                        "failed"
                                                    ]
                                                },
                                                "bounces": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "hard": {
                                                            "type": "integer"
                                                        },
                                                        "soft": {
                                                            "type": "integer"
                                                        },
                                                        "complaints": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "hard",
                                                        "soft",
                                                        "complaints"
                                                    ]
                                                },
                                                "recent_campaigns": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "subject": {
                                                                "type": "string"
                                                            },
                                                            "sent_count": {
                                                                "type": "integer"
                                                            },
                                                            "failed_count": {
                                                                "type": "integer"
                                                            },
                                                            "total_recipients": {
                                                                "type": "integer"
                                                            },
                                                            "delivery_rate_pct": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "completed_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "subject",
                                                            "sent_count",
                                                            "failed_count",
                                                            "total_recipients",
                                                            "delivery_rate_pct",
                                                            "completed_at"
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "totals",
                                                "history",
                                                "bounces",
                                                "recent_campaigns"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/campaigns": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_admin_newsletter_campaigns",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/campaigns/{id}": {
            "get": {
                "operationId": "admin.newsletter.showCampaign_0__get_v1_admin_newsletter_campaigns_id",
                "summary": "Show a single queued marketing campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/campaigns/{id}/cancel": {
            "post": {
                "operationId": "admin.newsletter.cancelCampaign_0__post_v1_admin_newsletter_campaigns_id_cancel",
                "summary": "Cancel a queued or processing marketing campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign cancelled successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign can no longer be cancelled."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/campaigns/{id}/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistoryById_0",
                "summary": "List delivery history records for a single campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "History table does not support per-campaign queries yet. Run migrations first."
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Newsletter history table is not ready."
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaigns table is not ready."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistory_0__get_v1_admin_newsletter_history",
                "summary": "List sent marketing campaign history",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter history table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/preview": {
            "post": {
                "operationId": "admin.newsletter.previewCampaign_0__post_v1_admin_newsletter_preview",
                "summary": "Preview a marketing email campaign without sending it",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaign preview generated."
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": [],
                                                "template_key": [],
                                                "recipient_group": [],
                                                "recipient_count": {
                                                    "type": "integer"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "template_key",
                                                "recipient_group",
                                                "recipient_count",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/segments": {
            "get": {
                "operationId": "admin.newsletter.indexSegments_0",
                "summary": "List subscriber segments",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.storeSegment_1",
                "summary": "Create a subscriber segment",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "logic": {
                                        "type": "string",
                                        "enum": [
                                            "and",
                                            "or"
                                        ]
                                    },
                                    "conditions": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "field": {
                                                    "type": "string",
                                                    "enum": [
                                                        "role",
                                                        "created_at",
                                                        "email"
                                                    ]
                                                },
                                                "operator": {
                                                    "type": "string",
                                                    "enum": [
                                                        "=",
                                                        "!=",
                                                        ">=",
                                                        "<=",
                                                        "like"
                                                    ]
                                                },
                                                "value": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "field",
                                                "operator",
                                                "value"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "name",
                                    "conditions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment created."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/segments/{id}": {
            "delete": {
                "operationId": "admin.newsletter.destroySegment_0",
                "summary": "Delete a subscriber segment",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/send": {
            "post": {
                "operationId": "admin.newsletter.sendCampaign_0__post_v1_admin_newsletter_send",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/subscribers": {
            "get": {
                "operationId": "admin.newsletter.indexSubscribers_0__get_v1_admin_newsletter_subscribers",
                "summary": "List newsletter subscribers",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/subscribers/bulk-upload": {
            "post": {
                "operationId": "admin.newsletter.bulkUploadSubscribers_0__post_v1_admin_newsletter_subscribers_bulk_upload",
                "description": "CSV accepted formats:\n- one column: email\n- two columns: email,name\n- with or without header row",
                "summary": "Bulk upload newsletter subscribers from CSV file",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "file": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "file"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscribers bulk upload completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "inserted": {
                                                    "type": "integer"
                                                },
                                                "invalid": {
                                                    "type": "integer"
                                                },
                                                "duplicates_in_file": {
                                                    "type": "integer"
                                                },
                                                "already_subscribed": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "processed",
                                                "inserted",
                                                "invalid",
                                                "duplicates_in_file",
                                                "already_subscribed"
                                            ]
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/subscribers/export": {
            "get": {
                "operationId": "admin.newsletter.exportSubscribers_0",
                "summary": "Export all newsletter subscribers as a CSV download",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/subscribers/template": {
            "get": {
                "operationId": "admin.newsletter.downloadSubscribersTemplate_0__get_v1_admin_newsletter_subscribers_template",
                "summary": "Download a CSV template for newsletter subscribers bulk upload",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/subscribers/{id}": {
            "get": {
                "operationId": "admin.newsletter.showSubscriber_0__get_v1_admin_newsletter_subscribers_id",
                "summary": "Get a single newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.newsletter.updateSubscriber_1__put_v1_admin_newsletter_subscribers_id",
                "summary": "Update a newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber updated successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.newsletter.destroySubscriber_2__delete_v1_admin_newsletter_subscribers_id",
                "description": "Soft-deletes when `deleted_at` exists, otherwise hard-deletes.",
                "summary": "Delete a newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletter/users": {
            "get": {
                "operationId": "admin.newsletter.getUserApi_0__get_v1_admin_newsletter_users",
                "description": "Performs a LIKE search on the `users.name` column and returns a\nformatted array suitable for a select2 / autocomplete widget, where\neach entry has an `id` (user ID) and a `text` (user name) key.",
                "summary": "Search users by name for newsletter recipient selection",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters": {
            "get": {
                "operationId": "admin.newsletter.indexCampaigns_0__get_v1_admin_newsletters",
                "summary": "List queued marketing campaigns",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/MarketingCampaign"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.sendCampaign_1__post_v1_admin_newsletters",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/analytics": {
            "get": {
                "operationId": "admin.newsletter.analytics_0__get_v1_admin_newsletters_analytics",
                "summary": "Aggregate delivery analytics across all campaigns or a single campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "totals": {
                                                    "type": "object",
                                                    "properties": {
                                                        "campaigns": {
                                                            "type": "integer"
                                                        },
                                                        "recipients": {
                                                            "type": "integer"
                                                        },
                                                        "sent": {
                                                            "type": "integer"
                                                        },
                                                        "failed": {
                                                            "type": "integer"
                                                        },
                                                        "delivery_rate_pct": {
                                                            "anyOf": [
                                                                {
                                                                    "type": "number"
                                                                },
                                                                {
                                                                    "type": "integer",
                                                                    "enum": [
                                                                        0
                                                                    ]
                                                                }
                                                            ]
                                                        },
                                                        "completed": {
                                                            "type": "integer"
                                                        },
                                                        "completed_with_errors": {
                                                            "type": "integer"
                                                        },
                                                        "failed_campaigns": {
                                                            "type": "integer"
                                                        },
                                                        "cancelled": {
                                                            "type": "integer"
                                                        },
                                                        "in_progress": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "campaigns",
                                                        "recipients",
                                                        "sent",
                                                        "failed",
                                                        "delivery_rate_pct",
                                                        "completed",
                                                        "completed_with_errors",
                                                        "failed_campaigns",
                                                        "cancelled",
                                                        "in_progress"
                                                    ]
                                                },
                                                "history": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "records": {
                                                            "type": "integer"
                                                        },
                                                        "sent": {
                                                            "type": "integer"
                                                        },
                                                        "failed": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "records",
                                                        "sent",
                                                        "failed"
                                                    ]
                                                },
                                                "bounces": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "hard": {
                                                            "type": "integer"
                                                        },
                                                        "soft": {
                                                            "type": "integer"
                                                        },
                                                        "complaints": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "hard",
                                                        "soft",
                                                        "complaints"
                                                    ]
                                                },
                                                "recent_campaigns": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "subject": {
                                                                "type": "string"
                                                            },
                                                            "sent_count": {
                                                                "type": "integer"
                                                            },
                                                            "failed_count": {
                                                                "type": "integer"
                                                            },
                                                            "total_recipients": {
                                                                "type": "integer"
                                                            },
                                                            "delivery_rate_pct": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "number"
                                                                    },
                                                                    {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            0
                                                                        ]
                                                                    }
                                                                ]
                                                            },
                                                            "completed_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "subject",
                                                            "sent_count",
                                                            "failed_count",
                                                            "total_recipients",
                                                            "delivery_rate_pct",
                                                            "completed_at"
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "totals",
                                                "history",
                                                "bounces",
                                                "recent_campaigns"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/campaigns/{id}/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistoryById_0__get_v1_admin_newsletters_campaigns_id_history",
                "summary": "List delivery history records for a single campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "History table does not support per-campaign queries yet. Run migrations first."
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Newsletter history table is not ready."
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaigns table is not ready."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/history": {
            "get": {
                "operationId": "admin.newsletter.campaignHistory_0__get_v1_admin_newsletters_history",
                "summary": "List sent marketing campaign history",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter history table is not ready."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "minItems": 0,
                                            "maxItems": 0,
                                            "additionalItems": false
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/preview": {
            "post": {
                "operationId": "admin.newsletter.previewCampaign_0__post_v1_admin_newsletters_preview",
                "summary": "Preview a marketing email campaign without sending it",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaign preview generated."
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": [],
                                                "template_key": [],
                                                "recipient_group": [],
                                                "recipient_count": {
                                                    "type": "integer"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "template_key",
                                                "recipient_group",
                                                "recipient_count",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/segments": {
            "get": {
                "operationId": "admin.newsletter.indexSegments_0__get_v1_admin_newsletters_segments",
                "summary": "List subscriber segments",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter.storeSegment_1__post_v1_admin_newsletters_segments",
                "summary": "Create a subscriber segment",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "logic": {
                                        "type": "string",
                                        "enum": [
                                            "and",
                                            "or"
                                        ]
                                    },
                                    "conditions": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "field": {
                                                    "type": "string",
                                                    "enum": [
                                                        "role",
                                                        "created_at",
                                                        "email"
                                                    ]
                                                },
                                                "operator": {
                                                    "type": "string",
                                                    "enum": [
                                                        "=",
                                                        "!=",
                                                        ">=",
                                                        "<=",
                                                        "like"
                                                    ]
                                                },
                                                "value": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "field",
                                                "operator",
                                                "value"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "name",
                                    "conditions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment created."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/segments/{id}": {
            "delete": {
                "operationId": "admin.newsletter.destroySegment_0__delete_v1_admin_newsletters_segments_id",
                "summary": "Delete a subscriber segment",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segment not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Segments table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/send": {
            "post": {
                "operationId": "admin.newsletter.sendCampaign_0__post_v1_admin_newsletters_send",
                "description": "Supported groups: all_students, all_newsletter_subscribers,\nall_instructors, all_admins, all_interns, global, selected_users, direct_emails.",
                "summary": "Send a marketing email campaign to one recipient or a recipient group",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Marketing campaign queued."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "recipient_count": {
                                                            "type": "integer"
                                                        },
                                                        "queued_chunks": {
                                                            "type": "integer"
                                                        },
                                                        "chunk_size": {
                                                            "type": "integer"
                                                        },
                                                        "template_key": [],
                                                        "recipient_group": []
                                                    },
                                                    "required": [
                                                        "recipient_count",
                                                        "queued_chunks",
                                                        "chunk_size",
                                                        "template_key",
                                                        "recipient_group"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Campaign scheduled."
                                                },
                                                "campaign_id": {
                                                    "type": "integer"
                                                },
                                                "scheduled_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "campaign_id",
                                                "scheduled_at"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "No valid recipients were resolved for this campaign."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/subscribers": {
            "get": {
                "operationId": "admin.newsletter.indexSubscribers_0__get_v1_admin_newsletters_subscribers",
                "summary": "List newsletter subscribers",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LengthAwarePaginator"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/subscribers/bulk-upload": {
            "post": {
                "operationId": "admin.newsletter.bulkUploadSubscribers_0__post_v1_admin_newsletters_subscribers_bulk_upload",
                "description": "CSV accepted formats:\n- one column: email\n- two columns: email,name\n- with or without header row",
                "summary": "Bulk upload newsletter subscribers from CSV file",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "file": {
                                        "type": "string",
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 10240
                                    }
                                },
                                "required": [
                                    "file"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscribers bulk upload completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "inserted": {
                                                    "type": "integer"
                                                },
                                                "invalid": {
                                                    "type": "integer"
                                                },
                                                "duplicates_in_file": {
                                                    "type": "integer"
                                                },
                                                "already_subscribed": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "processed",
                                                "inserted",
                                                "invalid",
                                                "duplicates_in_file",
                                                "already_subscribed"
                                            ]
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/subscribers/export": {
            "get": {
                "operationId": "admin.newsletter.exportSubscribers_0__get_v1_admin_newsletters_subscribers_export",
                "summary": "Export all newsletter subscribers as a CSV download",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/subscribers/template": {
            "get": {
                "operationId": "admin.newsletter.downloadSubscribersTemplate_0__get_v1_admin_newsletters_subscribers_template",
                "summary": "Download a CSV template for newsletter subscribers bulk upload",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/subscribers/{id}": {
            "get": {
                "operationId": "admin.newsletter.showSubscriber_0__get_v1_admin_newsletters_subscribers_id",
                "summary": "Get a single newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.newsletter.updateSubscriber_1__put_v1_admin_newsletters_subscribers_id",
                "summary": "Update a newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber updated successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.newsletter.destroySubscriber_2__delete_v1_admin_newsletters_subscribers_id",
                "description": "Soft-deletes when `deleted_at` exists, otherwise hard-deletes.",
                "summary": "Delete a newsletter subscriber",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subscriber not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter subscriber table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/templates": {
            "get": {
                "operationId": "admin.newsletter-templates.index",
                "summary": "List all newsletter templates",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Newsletter"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.newsletter-templates.store",
                "summary": "Create a newsletter template",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "subject",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter template created."
                                        },
                                        "template": {
                                            "$ref": "#/components/schemas/Newsletter"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "template"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/templates/send": {
            "post": {
                "operationId": "admin.newsletter-templates.send",
                "description": "Loads a pre-built newsletter template from the newsletters table and\ndispatches it as a campaign. The template's subject and HTML description\nare used directly \u2014 no additional content fields required.",
                "summary": "Send a newsletter template to a recipient group",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "newsletter_id": {
                                        "type": "integer"
                                    },
                                    "recipient_group": {
                                        "type": "string",
                                        "enum": [
                                            "all_students",
                                            "students",
                                            "all_newsletter_subscribers",
                                            "newsletter_subscribers",
                                            "all_instructors",
                                            "instructors",
                                            "all_admins",
                                            "admins",
                                            "all_interns",
                                            "interns",
                                            "global",
                                            "everyone",
                                            "selected_users",
                                            "direct_emails",
                                            "single_recipient"
                                        ]
                                    },
                                    "recipient_emails": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "email"
                                        },
                                        "minItems": 1
                                    },
                                    "selected_user_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "newsletter_id",
                                    "recipient_group"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter template campaign queued."
                                        },
                                        "campaign_id": {
                                            "type": "integer"
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "newsletter_id": {
                                                    "type": "string"
                                                },
                                                "subject": {
                                                    "type": "string"
                                                },
                                                "recipient_count": {
                                                    "type": "integer"
                                                },
                                                "queued_chunks": {
                                                    "type": "integer"
                                                },
                                                "recipient_group": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "newsletter_id",
                                                "subject",
                                                "recipient_count",
                                                "queued_chunks",
                                                "recipient_group"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "campaign_id",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/templates/{id}": {
            "get": {
                "operationId": "admin.newsletter-templates.show",
                "summary": "Show a single newsletter template",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "template": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "template"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.newsletter-templates.update",
                "summary": "Update a newsletter template",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter template updated."
                                        },
                                        "template": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "template"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.newsletter-templates.destroy",
                "summary": "Delete a newsletter template",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Newsletter template deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/users": {
            "get": {
                "operationId": "admin.newsletter.getUserApi_0__get_v1_admin_newsletters_users",
                "description": "Performs a LIKE search on the `users.name` column and returns a\nformatted array suitable for a select2 / autocomplete widget, where\neach entry has an `id` (user ID) and a `text` (user name) key.",
                "summary": "Search users by name for newsletter recipient selection",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/{id}": {
            "get": {
                "operationId": "admin.newsletter.showCampaign_0__get_v1_admin_newsletters_id",
                "summary": "Show a single queued marketing campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/newsletters/{id}/cancel": {
            "post": {
                "operationId": "admin.newsletter.cancelCampaign_0__post_v1_admin_newsletters_id_cancel",
                "summary": "Cancel a queued or processing marketing campaign",
                "tags": [
                    "[Admin] APIs",
                    "Newsletter"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign cancelled successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign can no longer be cancelled."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Campaign not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Marketing campaigns table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/offline-payments": {
            "get": {
                "operationId": "offlinePayment.index",
                "tags": [
                    "[Admin] APIs",
                    "OfflinePayment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/OfflinePayment"
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "current_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "const": 1
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "const": 20
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/offline-payments/{id}": {
            "get": {
                "operationId": "offlinePayment.show",
                "tags": [
                    "[Admin] APIs",
                    "OfflinePayment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/offline-payments/{id}/approve": {
            "post": {
                "operationId": "offlinePayment.approve",
                "tags": [
                    "[Admin] APIs",
                    "OfflinePayment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "admin_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment approved successfully."
                                        },
                                        "data": {
                                            "type": "string"
                                        },
                                        "summary": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "summary"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only pending offline payments can be approved."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/offline-payments/{id}/document": {
            "get": {
                "operationId": "offlinePayment.document",
                "tags": [
                    "[Admin] APIs",
                    "OfflinePayment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "offline_payment_id": {
                                            "type": "integer"
                                        },
                                        "document_path": {
                                            "type": "string"
                                        },
                                        "document_url": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "offline_payment_id",
                                        "document_path",
                                        "document_url"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "No document attached to this offline payment."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Offline payment not found"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/offline-payments/{id}/reject": {
            "post": {
                "operationId": "offlinePayment.reject",
                "tags": [
                    "[Admin] APIs",
                    "OfflinePayment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    "admin_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "reason"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment rejected."
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only pending offline payments can be rejected."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Offline payment table is not ready."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/payments": {
            "get": {
                "operationId": "admin.payments.index",
                "description": "Supports filters: `user_id`, `payment_type`, `start_date`, `end_date`, `search` (transaction_id / invoice).",
                "summary": "List all payment transactions",
                "tags": [
                    "[Admin] APIs",
                    "Payments & Finance (Admin)",
                    "Payment"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "string"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/payments/{id}": {
            "get": {
                "operationId": "admin.payments.show",
                "summary": "Get a single payment transaction",
                "tags": [
                    "[Admin] APIs",
                    "Payments & Finance (Admin)",
                    "Payment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/payments/{id}/refund": {
            "post": {
                "operationId": "admin.payments.refund",
                "description": "Marks the payment as refunded. Actual gateway-level refund may require\nadditional integration with the payment provider.",
                "summary": "Initiate a refund for a payment",
                "tags": [
                    "[Admin] APIs",
                    "Payments & Finance (Admin)",
                    "Payment"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "amount": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0.01
                                    },
                                    "reason": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/payout-requests": {
            "get": {
                "operationId": "admin.payments.payoutRequest.index",
                "tags": [
                    "[Admin] APIs",
                    "PayoutRequest"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Payout"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "pending_amount": {
                                                            "type": "number"
                                                        },
                                                        "completed_amount": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "pending_amount",
                                                        "completed_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer",
                                                            "const": 1
                                                        },
                                                        "last_page": {
                                                            "type": "integer",
                                                            "const": 1
                                                        },
                                                        "per_page": {
                                                            "type": "integer",
                                                            "const": 20
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "pending_amount": {
                                                            "type": "integer"
                                                        },
                                                        "completed_amount": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "pending_amount",
                                                        "completed_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/payout-requests/{id}/complete": {
            "post": {
                "operationId": "payoutRequest.complete",
                "tags": [
                    "[Admin] APIs",
                    "PayoutRequest"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payment_type": {
                                        "type": "string",
                                        "maxLength": 80
                                    },
                                    "payment_reference": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 120
                                    },
                                    "admin_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "payment_type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request marked as completed."
                                        },
                                        "data": {
                                            "type": "string"
                                        },
                                        "instructor_summary": {
                                            "type": "object",
                                            "properties": {
                                                "earned_amount": {
                                                    "type": "number"
                                                },
                                                "paid_amount": {
                                                    "type": "number"
                                                },
                                                "pending_amount": {
                                                    "type": "number"
                                                },
                                                "available_amount": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "earned_amount",
                                                "paid_amount",
                                                "pending_amount",
                                                "available_amount"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data",
                                        "instructor_summary"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Only pending payout requests can be completed."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout request not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/payout-settings/{settingsId}/verify": {
            "post": {
                "operationId": "instructorPayoutDetails.verify",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "User not found for payout settings."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Payout settings not found."
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/permissions": {
            "get": {
                "operationId": "admin.access.access.permissionRegistry_0__get_v1_admin_permissions",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "modules": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "object",
                                                "properties": {
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "permissions": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "key": {
                                                                    "type": "string"
                                                                },
                                                                "label": {
                                                                    "type": "string"
                                                                }
                                                            },
                                                            "required": [
                                                                "key",
                                                                "label"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "required": [
                                                    "label",
                                                    "permissions"
                                                ]
                                            }
                                        },
                                        "permissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "module": {
                                                        "type": "string"
                                                    },
                                                    "routes": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "key",
                                                    "label",
                                                    "module",
                                                    "routes"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "modules",
                                        "permissions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.access.access.storeDepartment_1__post_v1_admin_permissions",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "permissions": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "name",
                                    "permissions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department created successfully."
                                        },
                                        "department": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "is_system": {
                                                    "type": "boolean"
                                                },
                                                "assigned_users": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "permissions",
                                                "expanded_permissions",
                                                "is_system",
                                                "assigned_users"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "department"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quiz-categories": {
            "get": {
                "operationId": "admin.quizCategories.index",
                "summary": "List quiz categories",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/QuizCategory"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.quizCategories.store",
                "summary": "Create a new quiz category",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/QuizCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quiz-categories/{id}": {
            "get": {
                "operationId": "admin.quizCategories.show",
                "summary": "Show one quiz category",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.quizCategories.update",
                "summary": "Update a quiz category",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.quizCategories.destroy",
                "summary": "Delete a quiz category",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Categories",
                    "QuizCategory"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz category deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes": {
            "get": {
                "operationId": "admin.courses.quizManagement.index",
                "description": "Returns all quizzes from both the lessons table (`lesson_type = 'quiz'`)\nand the legacy quizzes table, merged into a unified list.\nEach item includes a `source` field: `\"lesson\"` or `\"legacy\"`.",
                "summary": "List quizzes, optionally filtered by course",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "enum": [
                                "0",
                                "1"
                            ]
                        }
                    },
                    {
                        "name": "is_published",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quizzes": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "quizzes"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.courses.quizManagement.store",
                "description": "Creates a lesson record with `lesson_type = 'quiz'`. Duration is\nassembled from separate hour/minute/second fields. Title uniqueness\nis enforced within the course owner's lessons.",
                "summary": "Create a new quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "course_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "section_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "total_mark": {
                                        "type": "number",
                                        "minimum": 1
                                    },
                                    "pass_mark": {
                                        "type": "number",
                                        "minimum": 0
                                    },
                                    "retake": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "quiz_category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "difficulty_level_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "hour": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 23
                                    },
                                    "minute": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "second": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_published": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "total_mark",
                                    "pass_mark",
                                    "retake"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{id}": {
            "put": {
                "operationId": "admin.courses.quizManagement.update",
                "summary": "Update an existing quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "course_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "section_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "total_mark": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "pass_mark": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "retake": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "quiz_category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "difficulty_level_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "hour": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 23
                                    },
                                    "minute": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "second": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0,
                                        "maximum": 59
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "status": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "is_published": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz updated."
                                                },
                                                "quiz": {
                                                    "type": "object",
                                                    "properties": {
                                                        "": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        null,
                                                        "thumbnail"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "quiz"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Quiz updated."
                                                },
                                                "quiz": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "source": {
                                                            "type": "string",
                                                            "const": "legacy"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "total_mark": {
                                                            "type": "string"
                                                        },
                                                        "pass_mark": {
                                                            "type": "string"
                                                        },
                                                        "retake": {
                                                            "type": "string"
                                                        },
                                                        "description": {
                                                            "type": "string"
                                                        },
                                                        "difficulty_level_id": {
                                                            "type": "string"
                                                        },
                                                        "difficulty_level": {
                                                            "type": [
                                                                "object",
                                                                "null"
                                                            ],
                                                            "properties": {
                                                                "id": {
                                                                    "type": "string"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "slug": {
                                                                    "type": "string"
                                                                }
                                                            },
                                                            "required": [
                                                                "id",
                                                                "name",
                                                                "slug"
                                                            ]
                                                        },
                                                        "updated_at": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "source",
                                                        "title",
                                                        "total_mark",
                                                        "pass_mark",
                                                        "retake",
                                                        "description",
                                                        "difficulty_level_id",
                                                        "difficulty_level",
                                                        "updated_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "message",
                                                "quiz"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "A quiz with this title already exists in this scope."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.courses.quizManagement.destroy",
                "summary": "Delete a quiz and all its questions and submissions",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Quiz not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{id}/submissions": {
            "get": {
                "operationId": "admin.courses.quizManagement.submissions",
                "description": "Returns all submissions for a given quiz, grouped by student, with\nattempt number and score breakdown.",
                "summary": "List student submissions for a quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "QuizManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "quiz": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "quiz_category_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "quiz_category": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "title": {
                                                            "type": "string"
                                                        },
                                                        "thumbnail": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "title",
                                                        "thumbnail"
                                                    ]
                                                },
                                                "thumbnail": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "total_mark": {
                                                    "type": "number"
                                                },
                                                "pass_mark": {
                                                    "type": "number"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "title",
                                                "quiz_category_id",
                                                "quiz_category",
                                                "thumbnail",
                                                "total_mark",
                                                "pass_mark"
                                            ]
                                        },
                                        "submissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "user_id": {
                                                        "type": "integer"
                                                    },
                                                    "user_name": {
                                                        "type": "string"
                                                    },
                                                    "user_email": {
                                                        "type": "string"
                                                    },
                                                    "attempt": {
                                                        "type": "string"
                                                    },
                                                    "correct_count": {
                                                        "type": "integer"
                                                    },
                                                    "wrong_count": {
                                                        "type": "integer"
                                                    },
                                                    "total_questions": {
                                                        "type": "string"
                                                    },
                                                    "score_percent": {
                                                        "anyOf": [
                                                            {
                                                                "type": "number"
                                                            },
                                                            {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0
                                                                ]
                                                            }
                                                        ]
                                                    },
                                                    "score_on_total": {
                                                        "type": "number"
                                                    },
                                                    "passed": {
                                                        "type": "boolean"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "user_id",
                                                    "user_name",
                                                    "user_email",
                                                    "attempt",
                                                    "correct_count",
                                                    "wrong_count",
                                                    "total_questions",
                                                    "score_percent",
                                                    "score_on_total",
                                                    "passed",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "quiz",
                                        "submissions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/bulk-uploads": {
            "post": {
                "operationId": "admin.courses.quizBulkUpload.store",
                "tags": [
                    "[Admin] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload queued."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload failed to start."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "null"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "An upload is already in progress for this quiz. Wait for it to finish before starting another."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Replace all requires confirm_replace when the quiz has existing questions."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "get": {
                "operationId": "admin.courses.quizBulkUpload.index",
                "tags": [
                    "[Admin] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "queued",
                                "processing",
                                "completed",
                                "completed_with_errors",
                                "failed"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/QuizBulkUpload"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/bulk-uploads/{uploadId}": {
            "get": {
                "operationId": "admin.courses.quizBulkUpload.show",
                "tags": [
                    "[Admin] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "upload": {
                                            "$ref": "#/components/schemas/QuizBulkUpload"
                                        }
                                    },
                                    "required": [
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.courses.quizBulkUpload.destroy",
                "tags": [
                    "[Admin] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Cannot delete a processing upload."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/bulk-uploads/{uploadId}/retry": {
            "post": {
                "operationId": "admin.courses.quizBulkUpload.retry",
                "tags": [
                    "[Admin] APIs",
                    "QuizBulkUpload"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "uploadId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload re-queued."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk upload failed to restart."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Upload file is missing on disk."
                                        },
                                        "upload": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/QuizBulkUpload"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "upload"
                                    ]
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Upload is currently processing."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/questions": {
            "get": {
                "operationId": "admin.courses.question.index",
                "description": "Returns all questions for the given quiz, ordered by sort position,\nincluding correct answers (visible to admin/instructor).",
                "summary": "List questions for a quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "questions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "quiz_id": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "type": {
                                                        "type": "string"
                                                    },
                                                    "options": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "answer": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "sort": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "updated_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "quiz_id",
                                                    "title",
                                                    "type",
                                                    "options",
                                                    "answer",
                                                    "sort",
                                                    "created_at",
                                                    "updated_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "questions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.courses.question.store",
                "summary": "Create a new question in a quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "mcq",
                                            "fill_blanks",
                                            "true_false"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "answer": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                },
                                "required": [
                                    "title",
                                    "type",
                                    "answer"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 201
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/questions/export": {
            "get": {
                "operationId": "questions.exportCsv",
                "summary": "Export all quiz questions as a CSV download (bulk-upload compatible format)",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "text/csv; charset=UTF-8": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "headers": {
                            "Transfer-Encoding": {
                                "required": true,
                                "schema": {
                                    "type": "string",
                                    "enum": [
                                        "chunked"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "This quiz has no questions to export."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/questions/reorder": {
            "post": {
                "operationId": "admin.courses.question.reorder",
                "description": "Accepts an array of `{ id, sort }` pairs and bulk-updates sort positions.",
                "summary": "Reorder questions within a quiz",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "order": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "sort": {
                                                    "type": "integer",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "sort"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "order"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Questions reordered."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/quizzes/{quizId}/questions/{id}": {
            "get": {
                "operationId": "admin.courses.question.show",
                "summary": "Get a single question",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "question": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "options": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "answer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "sort": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "updated_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_id",
                                                "title",
                                                "type",
                                                "options",
                                                "answer",
                                                "sort",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "question"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.courses.question.update",
                "summary": "Update an existing question",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "mcq",
                                            "fill_blanks",
                                            "true_false"
                                        ]
                                    },
                                    "options": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "answer": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "sort": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Question updated."
                                        },
                                        "question": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "quiz_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "options": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "answer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                "sort": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "quiz_id",
                                                "title",
                                                "type",
                                                "options",
                                                "answer",
                                                "sort"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "question"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.courses.question.destroy",
                "summary": "Delete a question",
                "tags": [
                    "[Admin] APIs",
                    "Quiz Management",
                    "Question"
                ],
                "parameters": [
                    {
                        "name": "quizId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Question deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reconciliation": {
            "get": {
                "operationId": "reconciliation.index",
                "tags": [
                    "[Admin] APIs",
                    "Reconciliation"
                ],
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ReconciliationReport"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reconciliation/run": {
            "post": {
                "operationId": "reconciliation.run",
                "tags": [
                    "[Admin] APIs",
                    "Reconciliation"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "provider": {
                                        "type": "string",
                                        "enum": [
                                            "stripe",
                                            "paystack",
                                            "paypal"
                                        ]
                                    },
                                    "date_from": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "date_to": {
                                        "type": "string",
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "provider",
                                    "date_from",
                                    "date_to"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reconciliation completed."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/ReconciliationReport"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reconciliation/{id}": {
            "get": {
                "operationId": "reconciliation.show",
                "tags": [
                    "[Admin] APIs",
                    "Reconciliation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Report not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals": {
            "get": {
                "operationId": "referralManagement.index",
                "tags": [
                    "[Admin] APIs",
                    "ReferralManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "program": {
                                                        "type": "string"
                                                    },
                                                    "referrer_role": {
                                                        "type": "string"
                                                    },
                                                    "referral_code": {
                                                        "type": "string"
                                                    },
                                                    "trigger_type": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "referrer": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email"
                                                        ]
                                                    },
                                                    "referee": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "email": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "email"
                                                        ]
                                                    },
                                                    "credits_granted": {
                                                        "type": "integer"
                                                    },
                                                    "amount_granted": {
                                                        "type": "number"
                                                    },
                                                    "currency": {
                                                        "type": "string"
                                                    },
                                                    "qualified_at": {
                                                        "type": "string"
                                                    },
                                                    "rewarded_at": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    },
                                                    "rewards": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "meta": {
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": []
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "program",
                                                    "referrer_role",
                                                    "referral_code",
                                                    "trigger_type",
                                                    "status",
                                                    "referrer",
                                                    "referee",
                                                    "credits_granted",
                                                    "amount_granted",
                                                    "currency",
                                                    "qualified_at",
                                                    "rewarded_at",
                                                    "created_at",
                                                    "rewards",
                                                    "meta"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals/settings": {
            "get": {
                "operationId": "referralSettings.show",
                "tags": [
                    "[Admin] APIs",
                    "ReferralSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "settings": {
                                            "$ref": "#/components/schemas/ReferralProgramSetting"
                                        }
                                    },
                                    "required": [
                                        "settings"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "referralSettings.update",
                "tags": [
                    "[Admin] APIs",
                    "ReferralSettings"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "enabled": {
                                        "type": "boolean"
                                    },
                                    "trigger_type": {
                                        "type": "string",
                                        "enum": [
                                            "signup",
                                            "first_purchase",
                                            "subscription"
                                        ]
                                    },
                                    "referrer_credits": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 100000
                                    },
                                    "referee_credits": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 100000
                                    },
                                    "min_purchase_amount": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "require_email_verified": {
                                        "type": "boolean"
                                    },
                                    "code_prefix": {
                                        "type": "string",
                                        "maxLength": 20
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Referral settings updated"
                                        },
                                        "settings": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/ReferralProgramSetting"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "settings"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals/stats": {
            "get": {
                "operationId": "referralManagement.stats",
                "tags": [
                    "[Admin] APIs",
                    "ReferralManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "pending": {
                                            "type": "string"
                                        },
                                        "rewarded": {
                                            "type": "string"
                                        },
                                        "rejected": {
                                            "type": "string"
                                        },
                                        "total_credits_granted": {
                                            "type": "integer"
                                        },
                                        "total_cash_granted": {
                                            "type": "number"
                                        },
                                        "currency": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "pending",
                                        "rewarded",
                                        "rejected",
                                        "total_credits_granted",
                                        "total_cash_granted",
                                        "currency"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals/{id}": {
            "get": {
                "operationId": "referralManagement.show",
                "tags": [
                    "[Admin] APIs",
                    "ReferralManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "referral": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "program": {
                                                    "type": "string"
                                                },
                                                "referrer_role": {
                                                    "type": "string"
                                                },
                                                "referral_code": {
                                                    "type": "string"
                                                },
                                                "trigger_type": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "referrer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "referee": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "credits_granted": {
                                                    "type": "integer"
                                                },
                                                "amount_granted": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "qualified_at": {
                                                    "type": "string"
                                                },
                                                "rewarded_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "rewards": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "meta": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "program",
                                                "referrer_role",
                                                "referral_code",
                                                "trigger_type",
                                                "status",
                                                "referrer",
                                                "referee",
                                                "credits_granted",
                                                "amount_granted",
                                                "currency",
                                                "qualified_at",
                                                "rewarded_at",
                                                "created_at",
                                                "rewards",
                                                "meta"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "referral"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/referrals/{id}/reject": {
            "post": {
                "operationId": "referralManagement.reject",
                "tags": [
                    "[Admin] APIs",
                    "ReferralManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Referral rejected"
                                        },
                                        "referral": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "program": {
                                                    "type": "string"
                                                },
                                                "referrer_role": {
                                                    "type": "string"
                                                },
                                                "referral_code": {
                                                    "type": "string"
                                                },
                                                "trigger_type": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "referrer": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "referee": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "credits_granted": {
                                                    "type": "integer"
                                                },
                                                "amount_granted": {
                                                    "type": "number"
                                                },
                                                "currency": {
                                                    "type": "string"
                                                },
                                                "qualified_at": {
                                                    "type": "string"
                                                },
                                                "rewarded_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "rewards": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "meta": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "program",
                                                "referrer_role",
                                                "referral_code",
                                                "trigger_type",
                                                "status",
                                                "referrer",
                                                "referee",
                                                "credits_granted",
                                                "amount_granted",
                                                "currency",
                                                "qualified_at",
                                                "rewarded_at",
                                                "created_at",
                                                "rewards",
                                                "meta"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "referral"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Rewarded referrals cannot be rejected."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/revenue/instructors": {
            "get": {
                "operationId": "admin.analytics.instructorRevenue",
                "description": "Returns revenue grouped by instructor for the specified period.\nWhen the canonical instructor_revenue_splits table is available, it is used\nto cover all asset types (course, ebook, bootcamp, tutor_schedule, team_training, etc.).\nOtherwise falls back to payment_histories (courses only).",
                "summary": "Per-instructor revenue breakdown",
                "tags": [
                    "[Admin] APIs",
                    "Analytics (Admin)",
                    "Revenue"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "legacy"
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "instructor_id": {
                                                                "type": "string"
                                                            },
                                                            "instructor_name": {
                                                                "type": "string"
                                                            },
                                                            "total_revenue": {
                                                                "type": "number"
                                                            },
                                                            "transactions": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "required": [
                                                            "instructor_id",
                                                            "instructor_name",
                                                            "total_revenue",
                                                            "transactions"
                                                        ]
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "source",
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "period": {
                                                    "type": "string"
                                                },
                                                "start_date": {
                                                    "type": "string"
                                                },
                                                "end_date": {
                                                    "type": "string"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "const": "splits"
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total_revenue": {
                                                            "type": "number"
                                                        },
                                                        "creator_revenue": {
                                                            "type": "number"
                                                        },
                                                        "conductor_revenue": {
                                                            "type": "number"
                                                        },
                                                        "admin_revenue": {
                                                            "type": "number"
                                                        },
                                                        "gross_revenue": {
                                                            "type": "number"
                                                        },
                                                        "transactions": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "total_revenue",
                                                        "creator_revenue",
                                                        "conductor_revenue",
                                                        "admin_revenue",
                                                        "gross_revenue",
                                                        "transactions"
                                                    ]
                                                },
                                                "by_source_type": {
                                                    "type": "string"
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "instructor_id": {
                                                                "type": "string"
                                                            },
                                                            "instructor_name": {
                                                                "type": "string"
                                                            },
                                                            "total_revenue": {
                                                                "type": "number"
                                                            },
                                                            "creator_revenue": {
                                                                "type": "number"
                                                            },
                                                            "conductor_revenue": {
                                                                "type": "number"
                                                            },
                                                            "admin_revenue": {
                                                                "type": "number"
                                                            },
                                                            "gross_revenue": {
                                                                "type": "number"
                                                            },
                                                            "transactions": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "required": [
                                                            "instructor_id",
                                                            "instructor_name",
                                                            "total_revenue",
                                                            "creator_revenue",
                                                            "conductor_revenue",
                                                            "admin_revenue",
                                                            "gross_revenue",
                                                            "transactions"
                                                        ]
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "period",
                                                "start_date",
                                                "end_date",
                                                "source",
                                                "summary",
                                                "by_source_type",
                                                "data",
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/revenue/split-configs": {
            "get": {
                "operationId": "revenueSplitConfig.index",
                "tags": [
                    "[Admin] APIs",
                    "RevenueSplitConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorRevenueConfig"
                                                    }
                                                },
                                                "allowed_asset_types": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                        {
                                                            "type": "string",
                                                            "const": "course"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "ebook"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "bootcamp"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "live_class"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "tutor_schedule"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "team_training"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "presentation"
                                                        },
                                                        {
                                                            "type": "string",
                                                            "const": "tutorial"
                                                        }
                                                    ],
                                                    "minItems": 8,
                                                    "maxItems": 8,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "allowed_asset_types"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/revenue/split-configs/{assetType}": {
            "put": {
                "operationId": "revenueSplitConfig.update",
                "tags": [
                    "[Admin] APIs",
                    "RevenueSplitConfig"
                ],
                "parameters": [
                    {
                        "name": "assetType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "creator_percentage": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                    },
                                    "conductor_percentage": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    },
                                    "asset_type": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "creator_percentage",
                                    "conductor_percentage"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InstructorRevenueConfig"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Revenue configuration table is not ready. Run migrations first."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/revenue/splits": {
            "get": {
                "operationId": "revenueSplitReport.index",
                "tags": [
                    "[Admin] APIs",
                    "RevenueSplitReport"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/InstructorRevenueSplit"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "gross_amount": {
                                                            "type": "number"
                                                        },
                                                        "creator_amount": {
                                                            "type": "number"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "number"
                                                        },
                                                        "admin_amount": {
                                                            "type": "number"
                                                        }
                                                    },
                                                    "required": [
                                                        "gross_amount",
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "admin_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta",
                                                "summary"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "gross_amount": {
                                                            "type": "integer"
                                                        },
                                                        "creator_amount": {
                                                            "type": "integer"
                                                        },
                                                        "conductor_amount": {
                                                            "type": "integer"
                                                        },
                                                        "admin_amount": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "gross_amount",
                                                        "creator_amount",
                                                        "conductor_amount",
                                                        "admin_amount"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "summary"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reviews": {
            "get": {
                "operationId": "reviewModeration.index",
                "summary": "List all reviews across all courses, with optional status / course filter",
                "tags": [
                    "[Admin] APIs",
                    "Reviews",
                    "ReviewModeration"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "approved",
                                "pending",
                                "rejected"
                            ]
                        }
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "reviews": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "reviewer_name": {
                                                        "type": "string"
                                                    },
                                                    "course_title": {
                                                        "type": "string"
                                                    },
                                                    "course_id": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "rating": {
                                                        "type": "integer"
                                                    },
                                                    "comment": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "instructor_reply": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "instructor_replied_at": {
                                                        "type": "string"
                                                    },
                                                    "date": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "reviewer_name",
                                                    "course_title",
                                                    "course_id",
                                                    "rating",
                                                    "comment",
                                                    "status",
                                                    "instructor_reply",
                                                    "instructor_replied_at",
                                                    "date"
                                                ]
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "reviews",
                                        "pagination"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reviews/{id}": {
            "delete": {
                "operationId": "reviewModeration.destroy",
                "summary": "Hard-delete a review (admin only, bypasses soft delete)",
                "tags": [
                    "[Admin] APIs",
                    "Reviews",
                    "ReviewModeration"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Review deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reviews/{id}/approve": {
            "post": {
                "operationId": "reviewModeration.approve",
                "summary": "Approve a review (make it publicly visible)",
                "tags": [
                    "[Admin] APIs",
                    "Reviews",
                    "ReviewModeration"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Review approved."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/Review"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/reviews/{id}/reject": {
            "post": {
                "operationId": "reviewModeration.reject",
                "summary": "Reject a review (hide it from public view)",
                "tags": [
                    "[Admin] APIs",
                    "Reviews",
                    "ReviewModeration"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Review rejected."
                                        },
                                        "review": {
                                            "$ref": "#/components/schemas/Review"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "review"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/scholarship-applications": {
            "get": {
                "operationId": "scholarshipApplicationManagement.index",
                "tags": [
                    "[Admin] APIs",
                    "ScholarshipApplicationManagement"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ScholarshipApplication"
                                                    }
                                                },
                                                "first_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "next_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "prev_page_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "data",
                                                "first_page_url",
                                                "from",
                                                "last_page_url",
                                                "last_page",
                                                "links",
                                                "next_page_url",
                                                "path",
                                                "per_page",
                                                "prev_page_url",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/scholarship-applications/{id}": {
            "get": {
                "operationId": "scholarshipApplicationManagement.show",
                "tags": [
                    "[Admin] APIs",
                    "ScholarshipApplicationManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "application": {
                                            "$ref": "#/components/schemas/ScholarshipApplication"
                                        }
                                    },
                                    "required": [
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/scholarship-applications/{id}/approve": {
            "post": {
                "operationId": "scholarshipApplicationManagement.approve",
                "tags": [
                    "[Admin] APIs",
                    "ScholarshipApplicationManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "maxLength": 3000
                                    }
                                },
                                "required": [
                                    "reason"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Scholarship application approved."
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/ScholarshipApplication"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/scholarship-applications/{id}/reject": {
            "post": {
                "operationId": "scholarshipApplicationManagement.reject",
                "tags": [
                    "[Admin] APIs",
                    "ScholarshipApplicationManagement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "maxLength": 3000
                                    }
                                },
                                "required": [
                                    "reason"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Scholarship application rejected."
                                        },
                                        "application": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/ScholarshipApplication"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "application"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/api-config": {
            "get": {
                "operationId": "appSettings.apiConfig",
                "summary": "GET /api/v1/admin/settings/api-config",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    [],
                                                    {
                                                        "type": "string"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateApiConfig",
                "summary": "PUT /api/v1/admin/settings/api-config",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateApiConfigSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "API configuration updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/certificate": {
            "get": {
                "operationId": "advancedSettings.certificate",
                "tags": [
                    "[Admin] APIs",
                    "AdvancedSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "advancedSettings.updateCertificate",
                "tags": [
                    "[Admin] APIs",
                    "AdvancedSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "settings": {
                                        "type": "object",
                                        "properties": {
                                            "certificate_template": {
                                                "type": "string",
                                                "maxLength": 2550
                                            },
                                            "certificate_builder_content": {
                                                "type": "string"
                                            },
                                            "internship_certificate_background": {
                                                "type": "string",
                                                "maxLength": 2550
                                            },
                                            "internship_certificate_html": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "required": [
                                    "settings"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Certificate settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/frontend": {
            "get": {
                "operationId": "appSettings.frontend",
                "summary": "GET /api/v1/admin/settings/frontend",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateFrontend",
                "summary": "PUT /api/v1/admin/settings/frontend",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateFrontendSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Frontend settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/growth": {
            "get": {
                "operationId": "admin.growthSettings.show",
                "summary": "Get current growth / signup incentive settings",
                "tags": [
                    "[Admin] APIs",
                    "Growth Settings (Admin)",
                    "GrowthSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.growthSettings.update",
                "description": "All fields are optional; only provided keys are updated.",
                "summary": "Update growth / signup incentive settings",
                "tags": [
                    "[Admin] APIs",
                    "Growth Settings (Admin)",
                    "GrowthSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "settings": {
                                        "type": "object",
                                        "properties": {
                                            "signup_bonus_credits_enabled": {
                                                "type": "string",
                                                "enum": [
                                                    "0",
                                                    "1"
                                                ]
                                            },
                                            "signup_bonus_credits_amount": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 100
                                            },
                                            "email_verification_bonus_enabled": {
                                                "type": "string",
                                                "enum": [
                                                    "0",
                                                    "1"
                                                ]
                                            },
                                            "email_verification_bonus_amount": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 100
                                            },
                                            "tutor_session_buffer_minutes": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 120
                                            },
                                            "tutor_free_request_expiry_hours": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 720
                                            },
                                            "consultation_request_expiry_hours": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 720
                                            }
                                        }
                                    }
                                },
                                "required": [
                                    "settings"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/invoices": {
            "get": {
                "operationId": "invoiceSettings.show",
                "tags": [
                    "[Admin] APIs",
                    "InvoiceSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "settings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "settings"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "invoiceSettings.update",
                "tags": [
                    "[Admin] APIs",
                    "InvoiceSettings"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "invoice_company_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "invoice_company_legal_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "invoice_company_address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "invoice_company_city": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "invoice_company_country": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2
                                    },
                                    "invoice_company_tax_id": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "invoice_company_registration": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "invoice_company_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "invoice_company_phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "invoice_company_logo_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "invoice_bank_details": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "invoice_payment_terms": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "invoice_footer_note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    },
                                    "invoice_proforma_validity_days": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1,
                                        "maximum": 90
                                    },
                                    "invoice_generate_zero_amount": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Invoice settings updated."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/languages": {
            "get": {
                "operationId": "languageSettings.index",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Language"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "languageSettings.store",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 100
                                    },
                                    "direction": {
                                        "type": "string",
                                        "enum": [
                                            "ltr",
                                            "rtl"
                                        ]
                                    }
                                },
                                "required": [
                                    "name",
                                    "direction"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Language created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Language"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/languages/{id}": {
            "put": {
                "operationId": "languageSettings.update",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 100
                                    },
                                    "direction": {
                                        "type": "string",
                                        "enum": [
                                            "ltr",
                                            "rtl"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Language updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "languageSettings.destroy",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Language deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/languages/{id}/phrases": {
            "get": {
                "operationId": "languageSettings.phrases",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Language_phrase"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "languageSettings.updatePhrases",
                "tags": [
                    "[Admin] APIs",
                    "LanguageSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phrases": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "phrase": {
                                                    "type": "string",
                                                    "maxLength": 1000
                                                },
                                                "translated": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "phrase",
                                                "translated"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "phrases"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Language phrases updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/notifications/templates": {
            "get": {
                "operationId": "notificationSettings.index",
                "tags": [
                    "[Admin] APIs",
                    "NotificationSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/NotificationSetting"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/notifications/templates/{id}": {
            "get": {
                "operationId": "notificationSettings.show",
                "tags": [
                    "[Admin] APIs",
                    "NotificationSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "notificationSettings.update",
                "tags": [
                    "[Admin] APIs",
                    "NotificationSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "system_notification": {
                                        "type": "boolean"
                                    },
                                    "email_notification": {
                                        "type": "boolean"
                                    },
                                    "subject": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "template": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "setting_title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "setting_sub_title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "user_types": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_editable": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Notification template updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/open-ai": {
            "get": {
                "operationId": "advancedSettings.openAi",
                "tags": [
                    "[Admin] APIs",
                    "AdvancedSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    [],
                                                    {
                                                        "type": "string"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "advancedSettings.updateOpenAi",
                "tags": [
                    "[Admin] APIs",
                    "AdvancedSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "settings": {
                                        "type": "object",
                                        "properties": {
                                            "open_ai_model": {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            "open_ai_max_token": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 500000
                                            },
                                            "open_ai_secret_key": {
                                                "type": "string",
                                                "maxLength": 2000
                                            }
                                        }
                                    }
                                },
                                "required": [
                                    "settings"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "OpenAI settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/payment/advanced": {
            "get": {
                "operationId": "appSettings.paymentAdvanced",
                "summary": "GET /api/v1/admin/settings/payment/advanced",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updatePaymentAdvanced",
                "summary": "PUT /api/v1/admin/settings/payment/advanced",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePaymentAdvancedSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment advanced settings updated successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/payment/currency": {
            "get": {
                "operationId": "appSettings.paymentCurrency",
                "summary": "GET /api/v1/admin/settings/payment/currency",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updatePaymentCurrency",
                "summary": "PUT /api/v1/admin/settings/payment/currency",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePaymentCurrencySettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment currency settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/payment/gateways": {
            "get": {
                "operationId": "appSettings.paymentGateways",
                "summary": "GET /api/v1/admin/settings/payment/gateways",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "identifier": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "title": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "currency": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "test_mode": {
                                                        "type": "integer"
                                                    },
                                                    "keys": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "identifier",
                                                    "title",
                                                    "description",
                                                    "currency",
                                                    "status",
                                                    "test_mode",
                                                    "keys"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/payment/gateways/{identifier}": {
            "get": {
                "operationId": "appSettings.paymentGateway",
                "summary": "GET /api/v1/admin/settings/payment/gateways/{identifier}",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "parameters": [
                    {
                        "name": "identifier",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "identifier": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "test_mode": {
                                                    "type": "integer"
                                                },
                                                "keys": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "identifier",
                                                "title",
                                                "description",
                                                "currency",
                                                "status",
                                                "test_mode",
                                                "keys"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment gateway not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updatePaymentGateway",
                "summary": "PUT /api/v1/admin/settings/payment/gateways/{identifier}",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "parameters": [
                    {
                        "name": "identifier",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePaymentGatewaySettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment gateway updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "identifier": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "test_mode": {
                                                    "type": "integer"
                                                },
                                                "keys": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "identifier",
                                                "title",
                                                "description",
                                                "currency",
                                                "status",
                                                "test_mode",
                                                "keys"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment gateway not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/payment_settings": {
            "get": {
                "operationId": "appSettings.paymentSettings",
                "summary": "GET /api/v1/admin/settings/payment_settings",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "identifier": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "title": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "description": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "currency": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "test_mode": {
                                                        "type": "integer"
                                                    },
                                                    "keys": {
                                                        "type": "array",
                                                        "items": []
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "identifier",
                                                    "title",
                                                    "description",
                                                    "currency",
                                                    "status",
                                                    "test_mode",
                                                    "keys"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updatePaymentSettings",
                "summary": "PUT /api/v1/admin/settings/payment_settings/{id}",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StorePaymentSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment settings updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "identifier": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "test_mode": {
                                                    "type": "integer"
                                                },
                                                "keys": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "identifier",
                                                "title",
                                                "description",
                                                "currency",
                                                "status",
                                                "test_mode",
                                                "keys"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payment gateway not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/player": {
            "get": {
                "operationId": "appSettings.player",
                "summary": "GET /api/v1/admin/settings/player",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updatePlayer",
                "summary": "PUT /api/v1/admin/settings/player",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePlayerSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Player settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/seo": {
            "get": {
                "operationId": "seoSettings.index",
                "tags": [
                    "[Admin] APIs",
                    "SeoSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SeoField"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/seo/{id}": {
            "get": {
                "operationId": "seoSettings.show",
                "tags": [
                    "[Admin] APIs",
                    "SeoSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "seoSettings.update",
                "tags": [
                    "[Admin] APIs",
                    "SeoSettings"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "meta_title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "meta_keywords": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "meta_robot": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "canonical_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2000
                                    },
                                    "custom_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2000
                                    },
                                    "json_ld": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "og_title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "og_description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "og_image": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "SEO settings updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/settings/smtp": {
            "get": {
                "operationId": "appSettings.smtp",
                "summary": "GET /api/v1/admin/settings/smtp",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    [],
                                                    {
                                                        "type": "string"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateSmtp",
                "summary": "PUT /api/v1/admin/settings/smtp",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateSmtpSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "SMTP settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/storage/s3": {
            "get": {
                "operationId": "appSettings.s3",
                "summary": "GET /api/v1/admin/settings/storage/s3",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateS3",
                "summary": "PUT /api/v1/admin/settings/storage/s3",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateS3SettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "S3 settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/system": {
            "get": {
                "operationId": "appSettings.system",
                "summary": "GET /api/v1/admin/settings/system",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateSystem",
                "summary": "PUT /api/v1/admin/settings/system",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateSystemSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "System settings updated successfully"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": []
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/settings/zoom": {
            "get": {
                "operationId": "appSettings.zoom",
                "summary": "GET /api/v1/admin/settings/zoom",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "appSettings.updateZoom",
                "summary": "PUT /api/v1/admin/settings/zoom",
                "tags": [
                    "[Admin] APIs",
                    "AppSettings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateZoomSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Zoom settings updated successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/solutions": {
            "get": {
                "operationId": "admin.solutions.solution.index",
                "tags": [
                    "[Admin] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "slug": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "details": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "logo": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "logo_url": {
                                                        "type": "string"
                                                    },
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "slug",
                                                    "description",
                                                    "details",
                                                    "logo",
                                                    "logo_url",
                                                    "url",
                                                    "status",
                                                    "created_at"
                                                ]
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "current_page",
                                        "last_page",
                                        "per_page",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "solution.store",
                "tags": [
                    "[Admin] APIs",
                    "Solution"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "details": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ]
                                    },
                                    "logo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "logo_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 5120
                                    }
                                },
                                "required": [
                                    "name",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution created successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "logo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "slug",
                                                "logo",
                                                "logo_url"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/solutions/{id}": {
            "get": {
                "operationId": "admin.solutions.solution.show",
                "tags": [
                    "[Admin] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "details": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_url": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "details",
                                                "logo",
                                                "logo_url",
                                                "url",
                                                "status",
                                                "created_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "solution.update",
                "tags": [
                    "[Admin] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "details": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ]
                                    },
                                    "logo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "logo_file": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 5120
                                    }
                                },
                                "required": [
                                    "name",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution updated successfully."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "logo": {
                                                    "type": "string"
                                                },
                                                "logo_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "logo",
                                                "logo_url"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "solution.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Solution"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Solution not found."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students": {
            "get": {
                "operationId": "admin.users.students_0__get_v1_admin_students",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string",
                                            "const": "student"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/preview-profile-reminder": {
            "post": {
                "operationId": "users.previewStudentProfileReminder",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "student_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "student_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Student profile reminder preview generated."
                                        },
                                        "subject": {
                                            "type": "string",
                                            "const": "Update Your Alkademy Profile for a Better Experience"
                                        },
                                        "student_name": {
                                            "type": "string"
                                        },
                                        "studentName": {
                                            "type": "string"
                                        },
                                        "profile_url": {
                                            "type": "string"
                                        },
                                        "html": {
                                            "type": "string"
                                        },
                                        "preview_html": {
                                            "type": "string"
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": {
                                                    "type": "string",
                                                    "const": "Update Your Alkademy Profile for a Better Experience"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "studentName": {
                                                    "type": "string"
                                                },
                                                "profile_url": {
                                                    "type": "string"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "student_name",
                                                "studentName",
                                                "profile_url",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject",
                                        "student_name",
                                        "studentName",
                                        "profile_url",
                                        "html",
                                        "preview_html",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Student not found for the provided student_id."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/preview-welcome": {
            "post": {
                "operationId": "users.previewWelcomeEmail",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "student_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "student_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Welcome email preview generated."
                                        },
                                        "subject": {
                                            "type": "string",
                                            "const": "A Personal Welcome to Alkademy from Dr. Kay"
                                        },
                                        "student_name": {
                                            "type": "string"
                                        },
                                        "studentName": {
                                            "type": "string"
                                        },
                                        "html": {
                                            "type": "string"
                                        },
                                        "preview_html": {
                                            "type": "string"
                                        },
                                        "preview": {
                                            "type": "object",
                                            "properties": {
                                                "subject": {
                                                    "type": "string",
                                                    "const": "A Personal Welcome to Alkademy from Dr. Kay"
                                                },
                                                "student_name": {
                                                    "type": "string"
                                                },
                                                "studentName": {
                                                    "type": "string"
                                                },
                                                "html": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "subject",
                                                "student_name",
                                                "studentName",
                                                "html"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject",
                                        "student_name",
                                        "studentName",
                                        "html",
                                        "preview_html",
                                        "preview"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Student not found for the provided student_id."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/search": {
            "get": {
                "operationId": "users.searchStudentsForWorkshop",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "bootcamp_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/send-profile-reminder": {
            "post": {
                "operationId": "users.sendStudentProfileReminderBulk",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "student_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "student_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk profile reminder email dispatch completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "requested": {
                                                    "type": "integer"
                                                },
                                                "processed_students": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "non_student_or_missing": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "requested",
                                                "processed_students",
                                                "sent",
                                                "failed",
                                                "non_student_or_missing"
                                            ]
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "student_id": {
                                                        "type": "integer"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "sent": {
                                                        "type": "string"
                                                    },
                                                    "error": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "student_id",
                                                    "email",
                                                    "sent",
                                                    "error"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "results"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/send-welcome": {
            "post": {
                "operationId": "users.sendWelcomeEmailBulk",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "student_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "student_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Bulk welcome email dispatch completed."
                                        },
                                        "summary": {
                                            "type": "object",
                                            "properties": {
                                                "requested": {
                                                    "type": "integer"
                                                },
                                                "processed_students": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "non_student_or_missing": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "requested",
                                                "processed_students",
                                                "sent",
                                                "failed",
                                                "non_student_or_missing"
                                            ]
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "student_id": {
                                                        "type": "integer"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "sent": {
                                                        "type": "string"
                                                    },
                                                    "error": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "student_id",
                                                    "email",
                                                    "sent",
                                                    "error"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "summary",
                                        "results"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/{id}/send-profile-reminder": {
            "post": {
                "operationId": "users.sendStudentProfileReminder",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Profile reminder email sent successfully."
                                        },
                                        "student_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "student_id",
                                        "email"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Profile reminder email could not be sent."
                                        },
                                        "student_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "student_id",
                                        "email",
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/students/{id}/send-welcome": {
            "post": {
                "operationId": "users.sendWelcomeEmail",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Welcome email sent successfully."
                                        },
                                        "student_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "student_id",
                                        "email"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Welcome email could not be sent."
                                        },
                                        "student_id": {
                                            "type": "integer"
                                        },
                                        "email": {
                                            "type": "string"
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "student_id",
                                        "email",
                                        "error"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/categories": {
            "get": {
                "operationId": "supportConfig.categories.index",
                "summary": "List ticket categories",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketCategory"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "supportConfig.categoryStore",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created."
                                        },
                                        "category": {
                                            "$ref": "#/components/schemas/TicketCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/categories/{id}": {
            "put": {
                "operationId": "supportConfig.categoryUpdate",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated."
                                        },
                                        "category": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "supportConfig.categoryDestroy",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/faqs": {
            "get": {
                "operationId": "supportConfig.faqs.index",
                "summary": "List ticket FAQs",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketFaq"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "supportConfig.faqs.store",
                "summary": "Create a ticket FAQ",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "question": {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    "answer": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "question",
                                    "answer"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "FAQ created."
                                        },
                                        "faq": {
                                            "$ref": "#/components/schemas/TicketFaq"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "faq"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/faqs/{id}": {
            "put": {
                "operationId": "supportConfig.faqs.update",
                "summary": "Update a ticket FAQ",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "question": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "answer": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "FAQ updated."
                                        },
                                        "faq": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "faq"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "supportConfig.faqs.destroy",
                "summary": "Delete a ticket FAQ",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "FAQ deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/macros": {
            "get": {
                "operationId": "supportConfig.macros.index",
                "summary": "List ticket macros",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketMacro"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "supportConfig.macros.store",
                "summary": "Create a ticket macro",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 5000
                                    }
                                },
                                "required": [
                                    "title",
                                    "description"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Macro created."
                                        },
                                        "macro": {
                                            "$ref": "#/components/schemas/TicketMacro"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "macro"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/macros/{id}": {
            "put": {
                "operationId": "supportConfig.macros.update",
                "summary": "Update a ticket macro",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 5000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Macro updated."
                                        },
                                        "macro": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "macro"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "supportConfig.macros.destroy",
                "summary": "Delete a ticket macro",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Macro deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/priorities": {
            "get": {
                "operationId": "supportConfig.priorities.index",
                "summary": "List ticket priorities",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketPriority"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "supportConfig.priorityStore",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Priority created."
                                        },
                                        "priority": {
                                            "$ref": "#/components/schemas/TicketPriority"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "priority"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/priorities/{id}": {
            "put": {
                "operationId": "supportConfig.priorityUpdate",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Priority updated."
                                        },
                                        "priority": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "priority"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "supportConfig.priorityDestroy",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Priority deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/reports": {
            "get": {
                "operationId": "admin.support.reports",
                "description": "Returns aggregate counts by status, priority, and category, plus\nticket volume trend for the specified period.",
                "summary": "Ticket volume, resolution stats, and SLA metrics",
                "tags": [
                    "[Admin] APIs",
                    "Support (Admin)",
                    "SupportReport"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "period": {
                                            "type": "string"
                                        },
                                        "start_date": {
                                            "type": "string"
                                        },
                                        "end_date": {
                                            "type": "string"
                                        },
                                        "total_tickets": {
                                            "type": "string"
                                        },
                                        "tickets_in_period": {
                                            "type": "string"
                                        },
                                        "by_status": {
                                            "type": "string"
                                        },
                                        "by_priority": {
                                            "type": "string"
                                        },
                                        "by_category": {
                                            "type": "string"
                                        },
                                        "volume_trend": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "period",
                                        "start_date",
                                        "end_date",
                                        "total_tickets",
                                        "tickets_in_period",
                                        "by_status",
                                        "by_priority",
                                        "by_category",
                                        "volume_trend"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/statuses": {
            "get": {
                "operationId": "supportConfig.statuses.index",
                "summary": "List ticket statuses",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketStatus"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "supportConfig.statusStore",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "default_view": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "color": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "icon": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Status created."
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/TicketStatus"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/statuses/{id}": {
            "put": {
                "operationId": "supportConfig.statusUpdate",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "default_view": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "color": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "icon": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Status updated."
                                        },
                                        "status": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "status"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "supportConfig.statusDestroy",
                "tags": [
                    "[Admin] APIs",
                    "Support Config",
                    "SupportConfig"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Status deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/tickets": {
            "get": {
                "operationId": "student.support.ticket.index_0__get_v1_admin_support_tickets",
                "description": "Students/instructors see their own tickets. Admins see all tickets,\noptionally filtered by status, priority, category, or search term.",
                "summary": "List tickets for the authenticated user",
                "tags": [
                    "[Admin] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Ticket"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/tickets/{code}": {
            "get": {
                "operationId": "student.support.ticket.show_0__get_v1_admin_support_tickets_code",
                "summary": "Get a single ticket with its full message thread",
                "tags": [
                    "[Admin] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "ticket": {
                                            "$ref": "#/components/schemas/Ticket"
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "message": {
                                                        "type": "string"
                                                    },
                                                    "sender_id": {
                                                        "type": "integer"
                                                    },
                                                    "receiver_id": {
                                                        "type": "integer"
                                                    },
                                                    "file": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "message",
                                                    "sender_id",
                                                    "receiver_id",
                                                    "file",
                                                    "created_at"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "ticket",
                                        "messages"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "student.support.ticket.update_1",
                "summary": "Update ticket status/priority (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "priority_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "category_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket updated."
                                        },
                                        "ticket": {
                                            "anyOf": [
                                                {
                                                    "$ref": "#/components/schemas/Ticket"
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "ticket"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "student.support.ticket.destroy_2",
                "summary": "Delete a ticket and its messages (admin only)",
                "tags": [
                    "[Admin] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Ticket deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/support/tickets/{code}/reply": {
            "post": {
                "operationId": "student.support.ticket.reply_0__post_v1_admin_support_tickets_code_reply",
                "summary": "Reply to a ticket thread",
                "tags": [
                    "[Admin] APIs",
                    "Support Tickets",
                    "Ticket"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "message": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "message"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Reply sent."
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessage"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Access denied."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/team-training/packages": {
            "get": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.index_0__get_v1_admin_team_training_packages",
                "tags": [
                    "[Admin] APIs",
                    "TeamTrainingPackage"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamTrainingPackage"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.store_1__post_v1_admin_team_training_packages",
                "tags": [
                    "[Admin] APIs",
                    "TeamTrainingPackage"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "course_privacy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "course_id": {
                                        "type": "integer"
                                    },
                                    "allocation": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "pricing_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "expiry_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "expiry_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "features": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "title",
                                    "course_id",
                                    "allocation"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package created successfully"
                                        },
                                        "package": {
                                            "$ref": "#/components/schemas/TeamTrainingPackage"
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "package",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            }
        },
        "/v1/admin/team-training/packages/{id}": {
            "get": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.show_0__get_v1_admin_team_training_packages_id",
                "tags": [
                    "[Admin] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "package": {
                                            "type": "string"
                                        },
                                        "reserved_members": {
                                            "type": "integer"
                                        },
                                        "purchase_count": {
                                            "type": "integer"
                                        },
                                        "signup_count": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "package",
                                        "reserved_members",
                                        "purchase_count",
                                        "signup_count"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.update_1__put_v1_admin_team_training_packages_id",
                "tags": [
                    "[Admin] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "course_privacy": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "course_id": {
                                        "type": "integer"
                                    },
                                    "allocation": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "pricing_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "price": {
                                        "type": [
                                            "number",
                                            "null"
                                        ],
                                        "minimum": 0
                                    },
                                    "expiry_type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    },
                                    "start_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "expiry_date": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "features": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "thumbnail": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 4096
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "liveclass_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package updated successfully"
                                        },
                                        "package": {
                                            "type": "string"
                                        },
                                        "warnings": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "package",
                                        "warnings"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "publicApi.teamTraining.teamTrainingPackage.destroy_2__delete_v1_admin_team_training_packages_id",
                "tags": [
                    "[Admin] APIs",
                    "TeamTrainingPackage"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Forbidden"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Team package not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/team-training/purchases": {
            "get": {
                "operationId": "adminTeamTrainingPurchase.index",
                "tags": [
                    "[Admin] APIs",
                    "AdminTeamTrainingPurchase"
                ],
                "parameters": [
                    {
                        "name": "payment_method",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TeamPackagePurchase"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/team-training/purchases/{id}": {
            "get": {
                "operationId": "adminTeamTrainingPurchase.show",
                "tags": [
                    "[Admin] APIs",
                    "AdminTeamTrainingPurchase"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Purchase not found"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/tutor/calendar": {
            "get": {
                "operationId": "admin.tutor.calendar",
                "summary": "Return all tutor bookings within a date range for admin oversight",
                "tags": [
                    "[Admin] APIs",
                    "TutorCalendar"
                ],
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/tutor/categories": {
            "get": {
                "operationId": "tutorTaxonomy.adminIndexCategories",
                "summary": "List tutor categories for admin management",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TutorCategory"
                                            }
                                        }
                                    },
                                    "required": [
                                        "categories"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "tutorTaxonomy.adminStoreCategory",
                "summary": "Store a tutor category",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category created."
                                        },
                                        "category": {
                                            "$ref": "#/components/schemas/TutorCategory"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/tutor/categories/{id}": {
            "put": {
                "operationId": "tutorTaxonomy.adminUpdateCategory",
                "summary": "Update a tutor category",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category updated."
                                        },
                                        "category": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "category"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "tutorTaxonomy.adminDeleteCategory",
                "summary": "Delete a tutor category",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Category deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/tutor/subjects": {
            "post": {
                "operationId": "tutorTaxonomy.adminStoreSubject",
                "summary": "Store a tutor subject",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject created."
                                        },
                                        "subject": {
                                            "$ref": "#/components/schemas/TutorSubject"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/tutor/subjects/{id}": {
            "put": {
                "operationId": "tutorTaxonomy.adminUpdateSubject",
                "summary": "Update a tutor subject",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject updated."
                                        },
                                        "subject": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "subject"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "tutorTaxonomy.adminDeleteSubject",
                "summary": "Delete a tutor subject",
                "tags": [
                    "[Admin] APIs",
                    "TutorTaxonomy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Subject deleted."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/user/create": {
            "post": {
                "operationId": "admin.users.store_0",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "minLength": 8
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "student",
                                            "instructor",
                                            "admin"
                                        ]
                                    },
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "password",
                                    "role"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User created successfully."
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/user/{id}": {
            "get": {
                "operationId": "admin.users.show_0__get_v1_admin_user_id",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.users.update_1__put_v1_admin_user_id",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "student",
                                            "instructor",
                                            "admin"
                                        ]
                                    },
                                    "password": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "minLength": 8
                                    },
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                },
                                "required": [
                                    "name",
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User updated successfully."
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.users.destroy_2",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users": {
            "get": {
                "operationId": "admin.users.users_0__get_v1_admin_users",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/User"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page",
                                                "from",
                                                "to"
                                            ]
                                        },
                                        "role": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "pagination",
                                        "role"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "Invalid role. Allowed values: student, instructor, admin"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "const": "The role query parameter is required. Allowed values: student, instructor, admin"
                                                }
                                            },
                                            "required": [
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.users.store_1",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "minLength": 8
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "student",
                                            "instructor",
                                            "admin"
                                        ]
                                    },
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                },
                                "required": [
                                    "name",
                                    "email",
                                    "password",
                                    "role"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User created successfully."
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/permissions": {
            "get": {
                "operationId": "admin.access.access.permissionRegistry_0__get_v1_admin_users_permissions",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "modules": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "object",
                                                "properties": {
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "permissions": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "key": {
                                                                    "type": "string"
                                                                },
                                                                "label": {
                                                                    "type": "string"
                                                                }
                                                            },
                                                            "required": [
                                                                "key",
                                                                "label"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "required": [
                                                    "label",
                                                    "permissions"
                                                ]
                                            }
                                        },
                                        "permissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "module": {
                                                        "type": "string"
                                                    },
                                                    "routes": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "key",
                                                    "label",
                                                    "module",
                                                    "routes"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "modules",
                                        "permissions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.access.access.storeDepartment_1__post_v1_admin_users_permissions",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "permissions": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "name",
                                    "permissions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department created successfully."
                                        },
                                        "department": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "is_system": {
                                                    "type": "boolean"
                                                },
                                                "assigned_users": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "description",
                                                "permissions",
                                                "expanded_permissions",
                                                "is_system",
                                                "assigned_users"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "department"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{id}": {
            "get": {
                "operationId": "admin.users.show_0",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.users.update_1",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "student",
                                            "instructor",
                                            "admin"
                                        ]
                                    },
                                    "password": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "minLength": 8
                                    },
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                },
                                "required": [
                                    "name",
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User updated successfully."
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.users.update_2",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "student",
                                            "instructor",
                                            "admin"
                                        ]
                                    },
                                    "password": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "minLength": 8
                                    },
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "profile_searchable": {
                                        "type": "boolean"
                                    },
                                    "instructor_listed": {
                                        "type": "boolean"
                                    },
                                    "phone": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 30
                                    },
                                    "about": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    },
                                    "address": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 500
                                    },
                                    "facebook": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "twitter": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "linkedin": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "website": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 255
                                    },
                                    "status": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "0",
                                            "1"
                                        ]
                                    },
                                    "photo": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "binary",
                                        "contentMediaType": "application/octet-stream",
                                        "maxLength": 2048
                                    },
                                    "skills": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "maxLength": 80
                                        },
                                        "maxItems": 15
                                    }
                                },
                                "required": [
                                    "name",
                                    "email"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User updated successfully."
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "average_rating": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "facebook_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "profile_searchable": {
                                                    "type": "boolean"
                                                },
                                                "instructor_listed": {
                                                    "type": [
                                                        "boolean",
                                                        "null"
                                                    ]
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "phone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "website": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "skills": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "facebook": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "twitter": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "linkedin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "address": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "about": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "biography": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "educations": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "photo": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email_verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "feed_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "timezone": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "paymentkeys": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "stripe_customer_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "video_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "emails_received_count": {
                                                    "type": "integer"
                                                },
                                                "last_email_sent_at": {
                                                    "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",
                                                "average_rating",
                                                "role",
                                                "email",
                                                "facebook_id",
                                                "status",
                                                "profile_searchable",
                                                "instructor_listed",
                                                "name",
                                                "phone",
                                                "website",
                                                "skills",
                                                "facebook",
                                                "twitter",
                                                "linkedin",
                                                "address",
                                                "about",
                                                "biography",
                                                "educations",
                                                "photo",
                                                "email_verified_at",
                                                "feed_token",
                                                "timezone",
                                                "country",
                                                "paymentkeys",
                                                "stripe_customer_id",
                                                "video_url",
                                                "emails_received_count",
                                                "last_email_sent_at",
                                                "created_at",
                                                "updated_at",
                                                "deleted_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "user"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.users.destroy_3",
                "tags": [
                    "[Admin] APIs",
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "User deleted successfully."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{id}/access": {
            "get": {
                "operationId": "admin.access.access.showUserAccess_0__get_v1_admin_users_id_access",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email"
                                            ]
                                        },
                                        "access": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "department_id": {
                                                    "type": "string"
                                                },
                                                "department": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        },
                                                        "description": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "permissions": {
                                                            "type": "string"
                                                        },
                                                        "expanded_permissions": {
                                                            "type": "array",
                                                            "items": []
                                                        },
                                                        "is_system": {
                                                            "type": "boolean"
                                                        },
                                                        "assigned_users": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug",
                                                        "description",
                                                        "permissions",
                                                        "expanded_permissions",
                                                        "is_system",
                                                        "assigned_users"
                                                    ]
                                                },
                                                "granted_permissions": {
                                                    "type": "string"
                                                },
                                                "revoked_permissions": {
                                                    "type": "string"
                                                },
                                                "expanded_department_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "resolved_permissions": {
                                                    "type": "array",
                                                    "items": []
                                                }
                                            },
                                            "required": [
                                                "department_id",
                                                "department",
                                                "granted_permissions",
                                                "revoked_permissions",
                                                "expanded_department_permissions",
                                                "resolved_permissions"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "user",
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.access.access.updateUserAccess_1__put_v1_admin_users_id_access",
                "tags": [
                    "[Admin] APIs",
                    "Access"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "department_id": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "granted_permissions": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "revoked_permissions": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Admin access updated successfully."
                                        },
                                        "access": {
                                            "type": "object",
                                            "properties": {
                                                "permissions": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "department": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug"
                                                    ]
                                                },
                                                "granted_permissions": {
                                                    "type": "string"
                                                },
                                                "revoked_permissions": {
                                                    "type": "string"
                                                },
                                                "is_super_admin": {
                                                    "type": "boolean"
                                                },
                                                "is_root_admin": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "permissions",
                                                "department",
                                                "granted_permissions",
                                                "revoked_permissions",
                                                "is_super_admin",
                                                "is_root_admin"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "access"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{userId}/payout-settings": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.index_0__get_v1_admin_users_userId_payout_settings",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "message": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "No payout settings configured."
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "admin.payments.instructorPayoutDetails.store_1__post_v1_admin_users_userId_payout_settings",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePayoutSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Payout method added."
                                        },
                                        "payout_settings": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "payout_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_number": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_branch": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bic_swift": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_iban": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_tag": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_primary": {
                                                    "type": "boolean"
                                                },
                                                "verification_status": {
                                                    "type": "string"
                                                },
                                                "verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "settings_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "payout_method",
                                                "payout_account_name",
                                                "payout_account_number",
                                                "payout_bank_name",
                                                "payout_bank_branch",
                                                "payout_bic_swift",
                                                "payout_iban",
                                                "payout_currency",
                                                "payout_tag",
                                                "payout_account_email",
                                                "payout_notes",
                                                "is_primary",
                                                "verification_status",
                                                "verified_at",
                                                "settings_changed_at",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{userId}/payout-settings-audit": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.auditLog_0__get_v1_admin_users_userId_payout_settings_audit",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/PayoutSettingsAudit"
                                                    }
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "current_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "current_page",
                                                        "last_page",
                                                        "per_page",
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "total"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "meta"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{userId}/payout-settings/{settingsId}": {
            "get": {
                "operationId": "admin.payments.instructorPayoutDetails.show_0__get_v1_admin_users_userId_payout_settings_settingsId",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "payout_method": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_number": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bank_branch": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_bic_swift": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_iban": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_currency": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_tag": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_account_email": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "payout_notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_primary": {
                                                    "type": "boolean"
                                                },
                                                "verification_status": {
                                                    "type": "string"
                                                },
                                                "verified_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "settings_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "payout_method",
                                                "payout_account_name",
                                                "payout_account_number",
                                                "payout_bank_name",
                                                "payout_bank_branch",
                                                "payout_bic_swift",
                                                "payout_iban",
                                                "payout_currency",
                                                "payout_tag",
                                                "payout_account_email",
                                                "payout_notes",
                                                "is_primary",
                                                "verification_status",
                                                "verified_at",
                                                "settings_changed_at",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "admin.payments.instructorPayoutDetails.update_1__put_v1_admin_users_userId_payout_settings_settingsId",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payout_method": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 80
                                    },
                                    "payout_account_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_account_number": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bank_branch": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_bic_swift": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_iban": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_tag": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "payout_currency": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 8
                                    },
                                    "payout_account_email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email",
                                        "maxLength": 255
                                    },
                                    "payout_notes": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "payout_settings": {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "minItems": 0,
                                                    "maxItems": 0,
                                                    "additionalItems": false
                                                },
                                                {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            ]
                                        },
                                        "cooldown": {
                                            "type": "string"
                                        },
                                        "user": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "instructor": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "role": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "email",
                                                "role"
                                            ]
                                        },
                                        "message": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "No payout settings configured."
                                        }
                                    },
                                    "required": [
                                        "payout_settings",
                                        "cooldown",
                                        "user",
                                        "instructor",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "admin.payments.instructorPayoutDetails.destroy_2__delete_v1_admin_users_userId_payout_settings_settingsId",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/users/{userId}/payout-settings/{settingsId}/primary": {
            "patch": {
                "operationId": "admin.payments.instructorPayoutDetails.setPrimary_0__patch_v1_admin_users_userId_payout_settings_settingsId_primary",
                "tags": [
                    "[Admin] APIs",
                    "InstructorPayoutDetails"
                ],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "settingsId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancies": {
            "get": {
                "operationId": "admin.vacancies.vacancy.index",
                "tags": [
                    "[Admin] APIs",
                    "Vacancy"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Vacancy"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "vacancy.store",
                "tags": [
                    "[Admin] APIs",
                    "Vacancy"
                ],
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy created successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "department_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "work_mode": {
                                                    "type": "string"
                                                },
                                                "vacancy_location_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "requirements": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "salary_range": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "responsibilities": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": []
                                                },
                                                "is_active": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "display_location": {
                                                    "type": "string"
                                                },
                                                "vacancy_location": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "city": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "country": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "description": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "is_active": {
                                                            "type": "boolean"
                                                        },
                                                        "created_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        },
                                                        "updated_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug",
                                                        "city",
                                                        "country",
                                                        "description",
                                                        "is_active",
                                                        "created_at",
                                                        "updated_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "department_id",
                                                "location",
                                                "work_mode",
                                                "vacancy_location_id",
                                                "type",
                                                "status",
                                                "title",
                                                "description",
                                                "requirements",
                                                "salary_range",
                                                "responsibilities",
                                                "is_active",
                                                "created_at",
                                                "updated_at",
                                                "display_location",
                                                "vacancy_location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancies/{id}": {
            "get": {
                "operationId": "admin.vacancies.vacancy.show",
                "tags": [
                    "[Admin] APIs",
                    "Vacancy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "department_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "location": {
                                            "type": "string"
                                        },
                                        "work_mode": {
                                            "type": "string"
                                        },
                                        "vacancy_location_id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ]
                                        },
                                        "type": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "status": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "requirements": {
                                            "type": "array",
                                            "items": []
                                        },
                                        "salary_range": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "responsibilities": {
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": []
                                        },
                                        "is_active": {
                                            "type": "integer"
                                        },
                                        "created_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "display_location": {
                                            "type": "string"
                                        },
                                        "vacancy_location": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "city": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "country": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "slug",
                                                "city",
                                                "country",
                                                "description",
                                                "is_active",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "department_id",
                                        "location",
                                        "work_mode",
                                        "vacancy_location_id",
                                        "type",
                                        "status",
                                        "title",
                                        "description",
                                        "requirements",
                                        "salary_range",
                                        "responsibilities",
                                        "is_active",
                                        "created_at",
                                        "updated_at",
                                        "display_location",
                                        "vacancy_location"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "vacancy.update",
                "tags": [
                    "[Admin] APIs",
                    "Vacancy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy updated successfully"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "department_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "work_mode": {
                                                    "type": "string"
                                                },
                                                "vacancy_location_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "requirements": {
                                                    "type": "array",
                                                    "items": []
                                                },
                                                "salary_range": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "responsibilities": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": []
                                                },
                                                "is_active": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "display_location": {
                                                    "type": "string"
                                                },
                                                "vacancy_location": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "slug": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "city": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "country": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "description": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ]
                                                        },
                                                        "is_active": {
                                                            "type": "boolean"
                                                        },
                                                        "created_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        },
                                                        "updated_at": {
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "format": "date-time"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "slug",
                                                        "city",
                                                        "country",
                                                        "description",
                                                        "is_active",
                                                        "created_at",
                                                        "updated_at"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "department_id",
                                                "location",
                                                "work_mode",
                                                "vacancy_location_id",
                                                "type",
                                                "status",
                                                "title",
                                                "description",
                                                "requirements",
                                                "salary_range",
                                                "responsibilities",
                                                "is_active",
                                                "created_at",
                                                "updated_at",
                                                "display_location",
                                                "vacancy_location"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "vacancy.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Vacancy"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancy-departments": {
            "get": {
                "operationId": "admin.vacancies.department.index",
                "tags": [
                    "[Admin] APIs",
                    "Department"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Department"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "department.store",
                "tags": [
                    "[Admin] APIs",
                    "Department"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_active": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Department"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancy-departments/{id}": {
            "get": {
                "operationId": "department.show",
                "tags": [
                    "[Admin] APIs",
                    "Department"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "department.update",
                "tags": [
                    "[Admin] APIs",
                    "Department"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "name",
                                    "is_active"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "department.destroy",
                "tags": [
                    "[Admin] APIs",
                    "Department"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Department cannot be deleted while vacancies are assigned to it."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancy-locations": {
            "get": {
                "operationId": "admin.vacancies.vacancyLocation.index",
                "tags": [
                    "[Admin] APIs",
                    "VacancyLocation"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/VacancyLocation"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "from": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "minimum": 1
                                        },
                                        "last_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "links": {
                                            "type": "array",
                                            "description": "Generated paginator links.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "required": [
                                                    "url",
                                                    "label",
                                                    "active"
                                                ]
                                            }
                                        },
                                        "next_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Base path for paginator generated URLs."
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "description": "Number of items shown per page.",
                                            "minimum": 0
                                        },
                                        "prev_page_url": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "to": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Number of the last item in the slice.",
                                            "minimum": 1
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Total number of items being paginated.",
                                            "minimum": 0
                                        }
                                    },
                                    "required": [
                                        "current_page",
                                        "data",
                                        "first_page_url",
                                        "from",
                                        "last_page_url",
                                        "last_page",
                                        "links",
                                        "next_page_url",
                                        "path",
                                        "per_page",
                                        "prev_page_url",
                                        "to",
                                        "total"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "vacancyLocation.store",
                "tags": [
                    "[Admin] APIs",
                    "VacancyLocation"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "city": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "country": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_active": {
                                        "type": [
                                            "boolean",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy location created successfully"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/VacancyLocation"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        },
        "/v1/admin/vacancy-locations/{id}": {
            "get": {
                "operationId": "vacancyLocation.show",
                "tags": [
                    "[Admin] APIs",
                    "VacancyLocation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "put": {
                "operationId": "vacancyLocation.update",
                "tags": [
                    "[Admin] APIs",
                    "VacancyLocation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "city": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "country": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "name",
                                    "is_active"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy location updated successfully"
                                        },
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            },
            "delete": {
                "operationId": "vacancyLocation.destroy",
                "tags": [
                    "[Admin] APIs",
                    "VacancyLocation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Vacancy location deleted successfully"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "const": "Location cannot be deleted while vacancies are assigned to it."
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/AuthenticationException"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "AccessRequest": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "item_type": {
                        "type": "string"
                    },
                    "item_id": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string"
                    },
                    "reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "requested_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "reviewed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "reviewed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "reviewer_role": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status_request_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "item_type",
                    "item_id",
                    "status",
                    "reason",
                    "requested_at",
                    "expires_at",
                    "reviewed_at",
                    "reviewed_by",
                    "reviewer_role",
                    "created_at",
                    "updated_at",
                    "status_request_key"
                ],
                "title": "AccessRequest"
            },
            "AddonCreditPurchase": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "credits": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string"
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "invoice": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "amount": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "transaction_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "session_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_checkout_session_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_payment_intent_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "amount_total": {
                        "type": "integer"
                    },
                    "currency": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "paid_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "base_plan_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "base_per_credit": {
                        "type": "integer"
                    },
                    "markup_percent": {
                        "type": "integer"
                    },
                    "refund_status": {
                        "type": "integer"
                    },
                    "refunded_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "refunded_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "credits",
                    "status",
                    "note",
                    "created_at",
                    "updated_at",
                    "invoice",
                    "amount",
                    "payment_type",
                    "transaction_id",
                    "session_id",
                    "stripe_checkout_session_id",
                    "stripe_payment_intent_id",
                    "amount_total",
                    "currency",
                    "paid_at",
                    "base_plan_id",
                    "base_per_credit",
                    "markup_percent",
                    "refund_status",
                    "refunded_at",
                    "refunded_by"
                ],
                "title": "AddonCreditPurchase"
            },
            "ApplicantQuizPoint": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "application_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "internship_application_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "job_application_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "quiz_id": {
                        "type": "integer"
                    },
                    "quiz_category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "attempt_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "points": {
                        "type": "integer"
                    },
                    "score_percent": {
                        "type": "number"
                    },
                    "correct_count": {
                        "type": "integer"
                    },
                    "total_questions": {
                        "type": "integer"
                    },
                    "completed_seconds": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "awarded_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "application_id",
                    "internship_application_id",
                    "job_application_id",
                    "quiz_id",
                    "quiz_category_id",
                    "attempt_id",
                    "points",
                    "score_percent",
                    "correct_count",
                    "total_questions",
                    "completed_seconds",
                    "awarded_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "ApplicantQuizPoint"
            },
            "Application": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "applicant_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicant_email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "document": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "onboarding_track": {
                        "type": "string"
                    },
                    "skip_quiz": {
                        "type": "boolean"
                    },
                    "skip_workshop": {
                        "type": "boolean"
                    },
                    "bootcamp_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "rejection_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "rejected_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "approved_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "workshop_confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "workshop_last_invited_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "activated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_invited_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "vip_invited_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "vip_invited_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "vip_profile_submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "internal_notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "applicant_name",
                    "applicant_email",
                    "phone",
                    "description",
                    "document",
                    "status",
                    "onboarding_track",
                    "skip_quiz",
                    "skip_workshop",
                    "bootcamp_id",
                    "rejection_reason",
                    "rejected_at",
                    "approved_at",
                    "workshop_confirmed_at",
                    "workshop_last_invited_at",
                    "activated_at",
                    "submitted_at",
                    "quiz_invited_at",
                    "quiz_submitted_at",
                    "vip_invited_at",
                    "vip_invited_by",
                    "vip_profile_submitted_at",
                    "internal_notes",
                    "created_at",
                    "updated_at"
                ],
                "title": "Application"
            },
            "BillingProfile": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "label": {
                        "type": "string"
                    },
                    "is_default": {
                        "type": "boolean"
                    },
                    "full_name": {
                        "type": "string"
                    },
                    "company_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address_line_1": {
                        "type": "string"
                    },
                    "address_line_2": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": "string"
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "postal_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": "string"
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tax_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "label",
                    "is_default",
                    "full_name",
                    "company_name",
                    "address_line_1",
                    "address_line_2",
                    "city",
                    "state",
                    "postal_code",
                    "country",
                    "phone",
                    "tax_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "BillingProfile"
            },
            "Blog": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "banner": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "keywords": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_popular": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "category_id",
                    "title",
                    "slug",
                    "description",
                    "thumbnail",
                    "banner",
                    "keywords",
                    "is_popular",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Blog"
            },
            "BlogCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "subtitle": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "subtitle",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "BlogCategory"
            },
            "Bootcamp": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "short_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_paid": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "discount_flag": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "discounted_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "publish_date": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "event_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_timezone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "liveclass_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "faqs": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "requirements": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "outcomes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_keywords": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "instructor_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "title",
                    "slug",
                    "category_id",
                    "description",
                    "short_description",
                    "is_paid",
                    "price",
                    "discount_flag",
                    "discounted_price",
                    "publish_date",
                    "event_date",
                    "event_timezone",
                    "liveclass_id",
                    "thumbnail",
                    "faqs",
                    "requirements",
                    "outcomes",
                    "meta_keywords",
                    "meta_description",
                    "status",
                    "created_at",
                    "updated_at",
                    "instructor_ids"
                ],
                "title": "Bootcamp"
            },
            "BootcampCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "created_at",
                    "updated_at"
                ],
                "title": "BootcampCategory"
            },
            "BootcampPurchase": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "bootcamp_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "tax": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "payment_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_details": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "admin_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "instructor_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "refund_status": {
                        "type": "integer"
                    },
                    "refunded_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "refunded_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "invoice",
                    "user_id",
                    "bootcamp_id",
                    "price",
                    "tax",
                    "payment_method",
                    "payment_details",
                    "status",
                    "created_at",
                    "updated_at",
                    "admin_revenue",
                    "instructor_revenue",
                    "refund_status",
                    "refunded_at",
                    "refunded_by"
                ],
                "title": "BootcampPurchase"
            },
            "Category": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "parent_id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "icon": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sort": {
                        "type": "integer"
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "keywords": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "category_logo": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "parent_id",
                    "title",
                    "slug",
                    "icon",
                    "sort",
                    "status",
                    "keywords",
                    "description",
                    "thumbnail",
                    "category_logo",
                    "created_at",
                    "updated_at"
                ],
                "title": "Category"
            },
            "ConsultationRequest": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "guest_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "guest_email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "guest_token": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "scholar_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "topic_category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "topic_category_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "topic_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "preferred_start": {
                        "type": "integer"
                    },
                    "preferred_end": {
                        "type": "integer"
                    },
                    "budget_credits": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "accepted_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "booking_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "live_class_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "guest_name",
                    "guest_email",
                    "guest_token",
                    "scholar_id",
                    "topic_category_id",
                    "topic_category_ids",
                    "topic_description",
                    "preferred_start",
                    "preferred_end",
                    "budget_credits",
                    "status",
                    "accepted_by",
                    "booking_id",
                    "live_class_id",
                    "expires_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "ConsultationRequest"
            },
            "Coupon": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "discount": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "expiry": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "code",
                    "discount",
                    "expiry",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Coupon"
            },
            "Course": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "short_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "course_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_featured": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "level": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "language": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_paid": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "is_best": {
                        "type": "integer"
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "discounted_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "discount_flag": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "enable_drip_content": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "drip_content_settings": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_keywords": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "banner": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "preview": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "requirements": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "outcomes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "faqs": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instructor_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "average_rating": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "expiry_period": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "short_description",
                    "user_id",
                    "category_id",
                    "course_type",
                    "status",
                    "is_featured",
                    "level",
                    "language",
                    "is_paid",
                    "is_best",
                    "price",
                    "discounted_price",
                    "discount_flag",
                    "enable_drip_content",
                    "drip_content_settings",
                    "meta_keywords",
                    "meta_description",
                    "thumbnail",
                    "banner",
                    "preview",
                    "description",
                    "requirements",
                    "outcomes",
                    "faqs",
                    "instructor_ids",
                    "average_rating",
                    "created_at",
                    "updated_at",
                    "expiry_period"
                ],
                "title": "Course"
            },
            "CreditBundle": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "credits": {
                        "type": "integer"
                    },
                    "price": {
                        "type": "number"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "credits",
                    "price",
                    "description",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "CreditBundle"
            },
            "Department": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "description",
                    "is_active",
                    "created_at",
                    "updated_at"
                ],
                "title": "Department"
            },
            "DifficultyLevel": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "order": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "order",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "DifficultyLevel"
            },
            "Ebook": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "publication_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "edition": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_paid": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "discount_flag": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "discounted_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "author_ids": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "published_date": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "language_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "summary": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "preview": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "complete": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "is_featured": {
                        "type": "integer"
                    },
                    "average_rating": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "instructor_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "title",
                    "slug",
                    "category_id",
                    "description",
                    "publication_name",
                    "edition",
                    "is_paid",
                    "price",
                    "discount_flag",
                    "discounted_price",
                    "thumbnail",
                    "author_ids",
                    "published_date",
                    "language_id",
                    "summary",
                    "preview",
                    "complete",
                    "status",
                    "is_featured",
                    "average_rating",
                    "created_at",
                    "updated_at",
                    "instructor_ids"
                ],
                "title": "Ebook"
            },
            "EbookCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "thumbnail",
                    "created_at",
                    "updated_at"
                ],
                "title": "EbookCategory"
            },
            "Feedback": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "message": {
                        "type": "string"
                    },
                    "has_read": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "replied": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "email",
                    "phone",
                    "message",
                    "has_read",
                    "replied",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Feedback"
            },
            "InstructorAvailability": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "instructor_id": {
                        "type": "integer"
                    },
                    "day_of_week": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "available_from": {
                        "type": "string"
                    },
                    "available_to": {
                        "type": "string"
                    },
                    "valid_from": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "valid_to": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "is_blocked": {
                        "type": "boolean"
                    },
                    "recurrence_type": {
                        "type": "string"
                    },
                    "timezone": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "instructor_id",
                    "day_of_week",
                    "available_from",
                    "available_to",
                    "valid_from",
                    "valid_to",
                    "is_blocked",
                    "recurrence_type",
                    "timezone",
                    "created_at",
                    "updated_at"
                ],
                "title": "InstructorAvailability"
            },
            "InstructorPayoutSettings": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "payout_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_account_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_account_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_bank_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_bank_branch": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_bic_swift": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_iban": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_tag": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_currency": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_account_email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "settings_changed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "verification_status": {
                        "type": "string"
                    },
                    "verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "verification_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "verification_token": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "verification_expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "is_primary": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "payout_method",
                    "payout_account_name",
                    "payout_account_number",
                    "payout_bank_name",
                    "payout_bank_branch",
                    "payout_bic_swift",
                    "payout_iban",
                    "payout_tag",
                    "payout_currency",
                    "payout_account_email",
                    "payout_notes",
                    "settings_changed_at",
                    "verification_status",
                    "verified_at",
                    "verification_method",
                    "verification_token",
                    "verification_expires_at",
                    "is_primary",
                    "created_at",
                    "updated_at"
                ],
                "title": "InstructorPayoutSettings"
            },
            "InstructorReferralProgramSetting": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "enabled": {
                        "type": "boolean"
                    },
                    "trigger_type": {
                        "type": "string"
                    },
                    "referrer_amount": {
                        "type": "string"
                    },
                    "referee_credits": {
                        "type": "integer"
                    },
                    "min_purchase_amount": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "require_email_verified": {
                        "type": "boolean"
                    },
                    "code_prefix": {
                        "type": "string"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "updated_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "enabled",
                    "trigger_type",
                    "referrer_amount",
                    "referee_credits",
                    "min_purchase_amount",
                    "require_email_verified",
                    "code_prefix",
                    "currency",
                    "updated_by",
                    "created_at",
                    "updated_at"
                ],
                "title": "InstructorReferralProgramSetting"
            },
            "InstructorRevenueConfig": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "asset_type": {
                        "type": "string"
                    },
                    "creator_percentage": {
                        "type": "number"
                    },
                    "conductor_percentage": {
                        "type": "number"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "asset_type",
                    "creator_percentage",
                    "conductor_percentage",
                    "is_active",
                    "created_at",
                    "updated_at"
                ],
                "title": "InstructorRevenueConfig"
            },
            "InstructorRevenueSplit": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "source_type": {
                        "type": "string"
                    },
                    "source_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "asset_type": {
                        "type": "string"
                    },
                    "asset_id": {
                        "type": "integer"
                    },
                    "buyer_user_id": {
                        "type": "integer"
                    },
                    "creator_user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "conductor_user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "currency": {
                        "type": "string"
                    },
                    "gross_amount": {
                        "type": "number"
                    },
                    "creator_percentage": {
                        "type": "number"
                    },
                    "conductor_percentage": {
                        "type": "number"
                    },
                    "creator_amount": {
                        "type": "number"
                    },
                    "conductor_amount": {
                        "type": "number"
                    },
                    "admin_amount": {
                        "type": "number"
                    },
                    "meta": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "source_type",
                    "source_id",
                    "asset_type",
                    "asset_id",
                    "buyer_user_id",
                    "creator_user_id",
                    "conductor_user_id",
                    "currency",
                    "gross_amount",
                    "creator_percentage",
                    "conductor_percentage",
                    "creator_amount",
                    "conductor_amount",
                    "admin_amount",
                    "meta",
                    "created_at",
                    "updated_at"
                ],
                "title": "InstructorRevenueSplit"
            },
            "Internship": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "student_id": {
                        "type": "integer"
                    },
                    "created_by": {
                        "type": "integer"
                    },
                    "application_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "local_supervisor_id": {
                        "type": "integer"
                    },
                    "academic_supervisor_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "duration_months": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "student_id",
                    "created_by",
                    "application_id",
                    "local_supervisor_id",
                    "academic_supervisor_id",
                    "title",
                    "description",
                    "start_date",
                    "end_date",
                    "duration_months",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Internship"
            },
            "InternshipApplication": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "student_id": {
                        "type": "integer"
                    },
                    "vacancy_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "internship_type": {
                        "$ref": "#/components/schemas/InternshipType"
                    },
                    "preferred_start_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "duration_months": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "statement": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "supporting_document_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reviewed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "review_note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reviewed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_invited_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "approved_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "rejected_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "student_id",
                    "vacancy_id",
                    "internship_type",
                    "preferred_start_date",
                    "duration_months",
                    "statement",
                    "status",
                    "supporting_document_url",
                    "reviewed_by",
                    "review_note",
                    "reviewed_at",
                    "created_at",
                    "updated_at",
                    "submitted_at",
                    "quiz_invited_at",
                    "quiz_submitted_at",
                    "approved_at",
                    "rejected_at"
                ],
                "title": "InternshipApplication"
            },
            "InternshipAssignmentLink": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "internship_id": {
                        "type": "integer"
                    },
                    "assignment_id": {
                        "type": "integer"
                    },
                    "assigned_by": {
                        "type": "integer"
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "internship_id",
                    "assignment_id",
                    "assigned_by",
                    "due_date",
                    "note",
                    "created_at",
                    "updated_at"
                ],
                "title": "InternshipAssignmentLink"
            },
            "InternshipDailyLog": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "internship_id": {
                        "type": "integer"
                    },
                    "student_id": {
                        "type": "integer"
                    },
                    "log_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "activities": {
                        "type": "string"
                    },
                    "hours_logged": {
                        "type": "number"
                    },
                    "comment": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "internship_id",
                    "student_id",
                    "log_date",
                    "activities",
                    "hours_logged",
                    "comment",
                    "created_at",
                    "updated_at"
                ],
                "title": "InternshipDailyLog"
            },
            "InternshipQuizLink": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "internship_id": {
                        "type": "integer"
                    },
                    "quiz_id": {
                        "type": "integer"
                    },
                    "assigned_by": {
                        "type": "integer"
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "internship_id",
                    "quiz_id",
                    "assigned_by",
                    "due_date",
                    "note",
                    "created_at",
                    "updated_at"
                ],
                "title": "InternshipQuizLink"
            },
            "InternshipRemark": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "internship_id": {
                        "type": "integer"
                    },
                    "author_id": {
                        "type": "integer"
                    },
                    "author_role": {
                        "type": "string"
                    },
                    "remark": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "internship_id",
                    "author_id",
                    "author_role",
                    "remark",
                    "created_at",
                    "updated_at"
                ],
                "title": "InternshipRemark"
            },
            "InternshipReport": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "internship_id": {
                        "type": "integer"
                    },
                    "generated_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "summary_json": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "generated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "finalized_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "internship_id",
                    "generated_by",
                    "summary_json",
                    "generated_at",
                    "finalized_at",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "InternshipReport"
            },
            "InternshipType": {
                "type": "string",
                "enum": [
                    "SIWES",
                    "PROFESSIONAL"
                ],
                "title": "InternshipType"
            },
            "Invoice": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice_number": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "billing_name": {
                        "type": "string"
                    },
                    "billing_company": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_address_line_1": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_address_line_2": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_postal_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "buyer_tax_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "line_items": {
                        "type": "array",
                        "items": []
                    },
                    "subtotal": {
                        "type": "number"
                    },
                    "discount_amount": {
                        "type": "number"
                    },
                    "tax_amount": {
                        "type": "number"
                    },
                    "tax_rate": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "tax_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tax_jurisdiction": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "total": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "payment_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_reference": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "payment_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "issued_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "paid_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "pdf_path": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "related_invoice_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "metadata": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "invoice_number",
                    "type",
                    "user_id",
                    "billing_name",
                    "billing_company",
                    "billing_address_line_1",
                    "billing_address_line_2",
                    "billing_city",
                    "billing_state",
                    "billing_postal_code",
                    "billing_country",
                    "buyer_tax_id",
                    "line_items",
                    "subtotal",
                    "discount_amount",
                    "tax_amount",
                    "tax_rate",
                    "tax_type",
                    "tax_jurisdiction",
                    "total",
                    "currency",
                    "payment_method",
                    "payment_reference",
                    "payment_id",
                    "payment_type",
                    "status",
                    "issued_at",
                    "paid_at",
                    "pdf_path",
                    "related_invoice_id",
                    "metadata",
                    "created_at",
                    "updated_at"
                ],
                "title": "Invoice"
            },
            "JobApplication": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "applicant_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicant_email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicant_phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "vacancy_id": {
                        "type": "integer"
                    },
                    "cover_letter": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "resume_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_invited_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "quiz_submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "hired_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "rejected_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "admin_notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "applicant_name",
                    "applicant_email",
                    "applicant_phone",
                    "vacancy_id",
                    "cover_letter",
                    "resume_url",
                    "status",
                    "submitted_at",
                    "quiz_invited_at",
                    "quiz_submitted_at",
                    "hired_at",
                    "rejected_at",
                    "admin_notes",
                    "created_at",
                    "updated_at"
                ],
                "title": "JobApplication"
            },
            "Knowledge_base_topick": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "knowledge_base_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "topic_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "knowledge_base_id",
                    "topic_name",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "Knowledge_base_topick"
            },
            "Language": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "direction": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "direction",
                    "created_at",
                    "updated_at"
                ],
                "title": "Language"
            },
            "Language_phrase": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "language_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "phrase": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "translated": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "language_id",
                    "phrase",
                    "translated",
                    "created_at",
                    "updated_at"
                ],
                "title": "Language_phrase"
            },
            "LengthAwarePaginator": {
                "type": "array",
                "items": [],
                "title": "LengthAwarePaginator"
            },
            "Lesson": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "section_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "quiz_category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "difficulty_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "lesson_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "duration": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "total_mark": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "pass_mark": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "retake": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "lesson_src": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "attachment": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "attachment_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "video_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_free": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "sort": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "summary": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "user_id",
                    "course_id",
                    "section_id",
                    "quiz_category_id",
                    "difficulty_level_id",
                    "lesson_type",
                    "duration",
                    "total_mark",
                    "pass_mark",
                    "retake",
                    "lesson_src",
                    "attachment",
                    "attachment_type",
                    "video_type",
                    "thumbnail",
                    "is_free",
                    "sort",
                    "description",
                    "summary",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Lesson"
            },
            "LiveClass": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "class_topic": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "provider": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "source_type": {
                        "type": "string"
                    },
                    "source_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "class_date_and_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "class_timezone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "duration_hours": {
                        "type": "integer"
                    },
                    "credit_weight": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total_seats": {
                        "type": "integer"
                    },
                    "additional_info": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "instructor_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail_url": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "course_id",
                    "class_topic",
                    "provider",
                    "source_type",
                    "source_id",
                    "class_date_and_time",
                    "class_timezone",
                    "duration_hours",
                    "credit_weight",
                    "total_seats",
                    "additional_info",
                    "note",
                    "created_at",
                    "updated_at",
                    "instructor_ids",
                    "thumbnail",
                    "thumbnail_url"
                ],
                "title": "LiveClass"
            },
            "MarketingCampaign": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "subject": {
                        "type": "string"
                    },
                    "template_key": {
                        "type": "string"
                    },
                    "recipient_group": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "headline": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "preview_text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "body": {
                        "type": "string"
                    },
                    "cta_label": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cta_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "asset_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "asset_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "scheduled_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "total_recipients": {
                        "type": "integer"
                    },
                    "total_chunks": {
                        "type": "integer"
                    },
                    "processed_chunks": {
                        "type": "integer"
                    },
                    "sent_count": {
                        "type": "integer"
                    },
                    "failed_count": {
                        "type": "integer"
                    },
                    "selected_user_ids": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "recipient_emails": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "started_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "completed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "last_error": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_by_user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "subject",
                    "template_key",
                    "recipient_group",
                    "status",
                    "headline",
                    "preview_text",
                    "body",
                    "cta_label",
                    "cta_url",
                    "asset_title",
                    "asset_url",
                    "event_date",
                    "scheduled_at",
                    "total_recipients",
                    "total_chunks",
                    "processed_chunks",
                    "sent_count",
                    "failed_count",
                    "selected_user_ids",
                    "recipient_emails",
                    "started_at",
                    "completed_at",
                    "last_error",
                    "created_by_user_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "MarketingCampaign"
            },
            "Message": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "thread_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "sender_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "receiver_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "message": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "read": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "thread_id",
                    "sender_id",
                    "receiver_id",
                    "message",
                    "read",
                    "created_at",
                    "updated_at"
                ],
                "title": "Message"
            },
            "MessageBag": {
                "type": "array",
                "items": [],
                "title": "MessageBag"
            },
            "MessageThread": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "contact_one": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "contact_two": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "code",
                    "contact_one",
                    "contact_two",
                    "created_at",
                    "updated_at"
                ],
                "title": "MessageThread"
            },
            "Newsletter": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "subject": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "subject",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "Newsletter"
            },
            "NotificationSetting": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_editable": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "addon_identifier": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_types": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "system_notification": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "email_notification": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "subject": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "template": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "setting_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "setting_sub_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "date_updated": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "type",
                    "is_editable",
                    "addon_identifier",
                    "user_types",
                    "system_notification",
                    "email_notification",
                    "subject",
                    "template",
                    "setting_title",
                    "setting_sub_title",
                    "date_updated",
                    "created_at",
                    "updated_at"
                ],
                "title": "NotificationSetting"
            },
            "OfflinePayment": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "item_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "items": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "tax": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "total_amount": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "coupon": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone_no": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "bank_no": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "doc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "integer"
                    },
                    "expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "reviewed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "reviewed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "rejection_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "admin_note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "item_type",
                    "items",
                    "tax",
                    "total_amount",
                    "coupon",
                    "phone_no",
                    "bank_no",
                    "doc",
                    "status",
                    "expires_at",
                    "reviewed_by",
                    "reviewed_at",
                    "rejection_reason",
                    "admin_note",
                    "created_at",
                    "updated_at"
                ],
                "title": "OfflinePayment"
            },
            "PaymentRetry": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "payment_id": {
                        "type": "integer"
                    },
                    "payment_type": {
                        "type": "string"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "retry_count": {
                        "type": "integer"
                    },
                    "max_retries": {
                        "type": "integer"
                    },
                    "next_retry_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "last_error": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "payment_id",
                    "payment_type",
                    "user_id",
                    "retry_count",
                    "max_retries",
                    "next_retry_at",
                    "last_error",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "PaymentRetry"
            },
            "Payout": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "payment_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_reference": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "execution_reference": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "execution_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "executed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "execution_error": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "request_note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "admin_note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "processed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "processed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "amount": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "converted_amount": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payout_currency": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "exchange_rate": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "rate_locked_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "payment_type",
                    "payment_reference",
                    "execution_reference",
                    "execution_status",
                    "executed_at",
                    "execution_error",
                    "request_note",
                    "admin_note",
                    "processed_at",
                    "processed_by",
                    "amount",
                    "converted_amount",
                    "payout_currency",
                    "exchange_rate",
                    "rate_locked_at",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "Payout"
            },
            "PayoutSettingsAudit": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "field_name": {
                        "type": "string"
                    },
                    "old_value": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "new_value": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "changed_by": {
                        "type": "integer"
                    },
                    "ip_address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_agent": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "field_name",
                    "old_value",
                    "new_value",
                    "changed_by",
                    "ip_address",
                    "user_agent",
                    "created_at"
                ],
                "title": "PayoutSettingsAudit"
            },
            "QuizBulkUpload": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "quiz_id": {
                        "type": "integer"
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "section_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "original_file_name": {
                        "type": "string"
                    },
                    "file_path": {
                        "type": "string"
                    },
                    "import_mode": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "total_rows": {
                        "type": "integer"
                    },
                    "processed_rows": {
                        "type": "integer"
                    },
                    "failed_rows": {
                        "type": "integer"
                    },
                    "replaced_count": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "errors": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "started_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "completed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "quiz_id",
                    "course_id",
                    "section_id",
                    "user_id",
                    "original_file_name",
                    "file_path",
                    "import_mode",
                    "status",
                    "total_rows",
                    "processed_rows",
                    "failed_rows",
                    "replaced_count",
                    "errors",
                    "started_at",
                    "completed_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "QuizBulkUpload"
            },
            "QuizCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "thumbnail",
                    "created_at",
                    "updated_at"
                ],
                "title": "QuizCategory"
            },
            "ReconciliationReport": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "provider": {
                        "type": "string"
                    },
                    "date_from": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "date_to": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "total_in_provider": {
                        "type": "integer"
                    },
                    "total_in_local": {
                        "type": "integer"
                    },
                    "matched": {
                        "type": "integer"
                    },
                    "missing_local": {
                        "type": "integer"
                    },
                    "missing_provider": {
                        "type": "integer"
                    },
                    "amount_discrepancy": {
                        "type": "string"
                    },
                    "details": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "status": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "provider",
                    "date_from",
                    "date_to",
                    "total_in_provider",
                    "total_in_local",
                    "matched",
                    "missing_local",
                    "missing_provider",
                    "amount_discrepancy",
                    "details",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "ReconciliationReport"
            },
            "ReferralProgramSetting": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "enabled": {
                        "type": "boolean"
                    },
                    "trigger_type": {
                        "type": "string"
                    },
                    "referrer_credits": {
                        "type": "integer"
                    },
                    "referee_credits": {
                        "type": "integer"
                    },
                    "min_purchase_amount": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "require_email_verified": {
                        "type": "boolean"
                    },
                    "code_prefix": {
                        "type": "string"
                    },
                    "updated_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "enabled",
                    "trigger_type",
                    "referrer_credits",
                    "referee_credits",
                    "min_purchase_amount",
                    "require_email_verified",
                    "code_prefix",
                    "updated_by",
                    "created_at",
                    "updated_at"
                ],
                "title": "ReferralProgramSetting"
            },
            "Review": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "rating": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "review_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "review": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instructor_reply": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instructor_replied_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "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",
                    "user_id",
                    "course_id",
                    "rating",
                    "review_type",
                    "status",
                    "review",
                    "instructor_reply",
                    "instructor_replied_at",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                ],
                "title": "Review"
            },
            "ScholarshipApplication": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "student_id": {
                        "type": "integer"
                    },
                    "statement": {
                        "type": "string"
                    },
                    "supporting_document_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "decision_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reviewed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "reviewed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "student_id",
                    "statement",
                    "supporting_document_url",
                    "status",
                    "decision_reason",
                    "reviewed_by",
                    "reviewed_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "ScholarshipApplication"
            },
            "Section": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sort": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "course_id",
                    "title",
                    "sort",
                    "created_at",
                    "updated_at"
                ],
                "title": "Section"
            },
            "SeoField": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "blog_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "bootcamp_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "route": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "name_route": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_keywords": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "meta_robot": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "canonical_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "custom_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "json_ld": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "og_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "og_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "og_image": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "course_id",
                    "blog_id",
                    "bootcamp_id",
                    "route",
                    "name_route",
                    "meta_title",
                    "meta_keywords",
                    "meta_description",
                    "meta_robot",
                    "canonical_url",
                    "custom_url",
                    "json_ld",
                    "og_title",
                    "og_description",
                    "og_image",
                    "created_at",
                    "updated_at"
                ],
                "title": "SeoField"
            },
            "StoreLiveClassRequest": {
                "type": "object",
                "properties": {
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "class_topic": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "provider": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "duration_hours": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 24
                    },
                    "credit_weight": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "total_seats": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 0,
                        "maximum": 10000
                    },
                    "class_date_and_time": {
                        "type": "string"
                    },
                    "class_timezone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 64
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application/octet-stream",
                        "maxLength": 5120
                    },
                    "additional_info": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "user_id",
                    "class_topic",
                    "provider",
                    "duration_hours",
                    "credit_weight",
                    "class_date_and_time"
                ],
                "title": "StoreLiveClassRequest"
            },
            "StorePaymentSettingsRequest": {
                "type": "object",
                "properties": {
                    "identifier": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "keys": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "status": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "test_mode": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "is_addon": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "currency": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 12
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "model_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    }
                },
                "required": [
                    "identifier"
                ],
                "title": "StorePaymentSettingsRequest"
            },
            "StoreReviewRequest": {
                "type": "object",
                "properties": {
                    "course_id": {
                        "type": "integer"
                    },
                    "rating": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 5
                    },
                    "review": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000
                    }
                },
                "required": [
                    "course_id",
                    "rating"
                ],
                "title": "StoreReviewRequest"
            },
            "Subscription": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "stripe_customer_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_subscription_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_subscription_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_current_period_end": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string"
                    },
                    "starts_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "ends_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "live_class_credits_total": {
                        "type": "integer"
                    },
                    "live_class_credits_remaining": {
                        "type": "integer"
                    },
                    "created_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "updated_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "cancel_at_period_end": {
                        "type": "boolean"
                    },
                    "cancel_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "canceled_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "canceled_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "cancel_source": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancel_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "stripe_customer_id",
                    "stripe_subscription_id",
                    "stripe_subscription_status",
                    "stripe_current_period_end",
                    "status",
                    "starts_at",
                    "ends_at",
                    "live_class_credits_total",
                    "live_class_credits_remaining",
                    "created_by",
                    "updated_by",
                    "created_at",
                    "updated_at",
                    "cancel_at_period_end",
                    "cancel_at",
                    "canceled_at",
                    "canceled_by",
                    "cancel_source",
                    "cancel_reason"
                ],
                "title": "Subscription"
            },
            "SubscriptionPlan": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "display_price": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "duration_days": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "live_class_credits": {
                        "type": "integer"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort": {
                        "type": "integer"
                    },
                    "stripe_price_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_recurring": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "description",
                    "display_price",
                    "duration_days",
                    "live_class_credits",
                    "is_active",
                    "sort",
                    "stripe_price_id",
                    "is_recurring",
                    "created_at",
                    "updated_at"
                ],
                "title": "SubscriptionPlan"
            },
            "TeamPackageMember": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "leader_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "team_package_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "member_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "leader_id",
                    "team_package_id",
                    "member_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "TeamPackageMember"
            },
            "TeamPackagePurchase": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "package_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "admin_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "instructor_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "tax": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "payment_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_details": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "refund_status": {
                        "type": "integer"
                    },
                    "refunded_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "refunded_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "invoice",
                    "user_id",
                    "package_id",
                    "price",
                    "admin_revenue",
                    "instructor_revenue",
                    "tax",
                    "payment_method",
                    "payment_details",
                    "status",
                    "created_at",
                    "updated_at",
                    "refund_status",
                    "refunded_at",
                    "refunded_by"
                ],
                "title": "TeamPackagePurchase"
            },
            "TeamTrainingPackage": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "course_privacy": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "liveclass_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "allocation": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "expiry_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "start_date": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "expiry_date": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "features": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "pricing_type": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "title",
                    "slug",
                    "price",
                    "course_privacy",
                    "course_id",
                    "liveclass_id",
                    "allocation",
                    "expiry_type",
                    "start_date",
                    "expiry_date",
                    "features",
                    "thumbnail",
                    "pricing_type",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "TeamTrainingPackage"
            },
            "Ticket": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "subject": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "creator_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "priority_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "subject",
                    "code",
                    "creator_id",
                    "user_id",
                    "status_id",
                    "priority_id",
                    "category_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "Ticket"
            },
            "TicketCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketCategory"
            },
            "TicketFaq": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "question": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "answer": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "question",
                    "answer",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketFaq"
            },
            "TicketMacro": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "description",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketMacro"
            },
            "TicketMessage": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "ticket_thread_code": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "message": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sender_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "receiver_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "file": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "ticket_thread_code",
                    "message",
                    "sender_id",
                    "receiver_id",
                    "file",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketMessage"
            },
            "TicketPriority": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketPriority"
            },
            "TicketStatus": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "icon": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "default_view": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "color": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "icon",
                    "title",
                    "status",
                    "default_view",
                    "color",
                    "created_at",
                    "updated_at"
                ],
                "title": "TicketStatus"
            },
            "TutorBooking": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "schedule_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "live_class_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "student_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "tutor_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "start_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "end_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "joining_data": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "admin_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "instructor_revenue": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "tax": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "payment_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "lifecycle_status": {
                        "type": "string"
                    },
                    "confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "instructor_joined_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "student_joined_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "delivered_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "delivered_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "student_confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "auto_confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "delivery_notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancelled_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "cancelled_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "cancelled_by_role": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancellation_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "idempotency_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment_details": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "refund_status": {
                        "type": "integer"
                    },
                    "refunded_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "refunded_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "invoice",
                    "schedule_id",
                    "live_class_id",
                    "student_id",
                    "tutor_id",
                    "start_time",
                    "end_time",
                    "joining_data",
                    "price",
                    "admin_revenue",
                    "instructor_revenue",
                    "tax",
                    "payment_method",
                    "status",
                    "lifecycle_status",
                    "confirmed_at",
                    "instructor_joined_at",
                    "student_joined_at",
                    "delivered_at",
                    "delivered_by",
                    "student_confirmed_at",
                    "auto_confirmed_at",
                    "delivery_notes",
                    "cancelled_at",
                    "cancelled_by",
                    "cancelled_by_role",
                    "cancellation_reason",
                    "idempotency_key",
                    "payment_details",
                    "created_at",
                    "updated_at",
                    "refund_status",
                    "refunded_at",
                    "refunded_by"
                ],
                "title": "TutorBooking"
            },
            "TutorCanTeach": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "instructor_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "subject_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "instructor_id",
                    "category_id",
                    "subject_id",
                    "description",
                    "thumbnail",
                    "price",
                    "created_at",
                    "updated_at"
                ],
                "title": "TutorCanTeach"
            },
            "TutorCategory": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "TutorCategory"
            },
            "TutorReview": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "tutor_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "student_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "booking_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "rating": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "review": {
                        "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",
                    "tutor_id",
                    "student_id",
                    "booking_id",
                    "rating",
                    "review",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                ],
                "title": "TutorReview"
            },
            "TutorSchedule": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "tutor_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "subject_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price": {
                        "type": "string"
                    },
                    "start_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "end_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tution_type": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "duration": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "booking_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "tutor_id",
                    "category_id",
                    "subject_id",
                    "price",
                    "start_time",
                    "end_time",
                    "tution_type",
                    "duration",
                    "description",
                    "status",
                    "booking_id",
                    "created_at",
                    "updated_at"
                ],
                "title": "TutorSchedule"
            },
            "TutorSubject": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "status",
                    "created_at",
                    "updated_at"
                ],
                "title": "TutorSubject"
            },
            "TutorTimeRequest": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "student_id": {
                        "type": "integer"
                    },
                    "tutor_id": {
                        "type": "integer"
                    },
                    "proposed_start": {
                        "type": "integer"
                    },
                    "proposed_end": {
                        "type": "integer"
                    },
                    "message": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "schedule_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "booking_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "responded_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "student_id",
                    "tutor_id",
                    "proposed_start",
                    "proposed_end",
                    "message",
                    "status",
                    "schedule_id",
                    "booking_id",
                    "responded_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "TutorTimeRequest"
            },
            "UpdateApiConfigSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "youtube_api_key": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "vimeo_api_key": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "academy_cloud_access_token": {
                                "type": "string",
                                "maxLength": 2000
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateApiConfigSettingsRequest"
            },
            "UpdateFrontendSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "banner_title": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "banner_sub_title": {
                                "type": "string",
                                "maxLength": 500
                            },
                            "promo_video_provider": {
                                "type": "string",
                                "enum": [
                                    "youtube",
                                    "vimeo",
                                    "html5"
                                ]
                            },
                            "promo_video_link": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "cookie_status": {
                                "type": "boolean",
                                "enum": [
                                    "0",
                                    "1"
                                ]
                            },
                            "cookie_note": {
                                "type": "string",
                                "maxLength": 10000
                            },
                            "facebook": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "twitter": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "linkedin": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "youtube": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "instagram": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "mobile_app_link": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "uri",
                                "maxLength": 1000
                            },
                            "recaptcha_status": {
                                "type": "boolean"
                            },
                            "recaptcha_sitekey": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "recaptcha_secretkey": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "home_page": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "motivational_speech": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "website_faqs": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "contact_info": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateFrontendSettingsRequest"
            },
            "UpdateLiveClassRequest": {
                "type": "object",
                "properties": {
                    "course_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "class_topic": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "provider": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "duration_hours": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 24
                    },
                    "credit_weight": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "total_seats": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10000
                    },
                    "class_date_and_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "class_timezone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 64
                    },
                    "thumbnail": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application/octet-stream",
                        "maxLength": 4096
                    },
                    "additional_info": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "title": "UpdateLiveClassRequest"
            },
            "UpdatePaymentAdvancedSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "offline_payment_bank_details": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 5000
                            },
                            "min_payout_threshold": {
                                "type": [
                                    "number",
                                    "null"
                                ],
                                "minimum": 0
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdatePaymentAdvancedSettingsRequest"
            },
            "UpdatePaymentCurrencySettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "system_currency": {
                                "type": "string",
                                "maxLength": 10
                            },
                            "currency_position": {
                                "type": "string",
                                "enum": [
                                    "left",
                                    "right",
                                    "left-space",
                                    "right-space"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdatePaymentCurrencySettingsRequest"
            },
            "UpdatePaymentGatewaySettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "status": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "test_mode": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "currency": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 12
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "title": "UpdatePaymentGatewaySettingsRequest"
            },
            "UpdatePayoutSettingsRequest": {
                "type": "object",
                "properties": {
                    "payout_method": {
                        "type": "string",
                        "enum": [
                            "bank_transfer",
                            "paypal",
                            "wise",
                            "revolut"
                        ]
                    },
                    "payout_account_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_account_number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_bank_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_bank_branch": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_bic_swift": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_iban": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_tag": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "payout_currency": {
                        "type": "string",
                        "maxLength": 8
                    },
                    "payout_account_email": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "email",
                        "maxLength": 255
                    },
                    "payout_notes": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000
                    }
                },
                "required": [
                    "payout_method",
                    "payout_currency"
                ],
                "title": "UpdatePayoutSettingsRequest"
            },
            "UpdatePlayerSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "watermark_width": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 5000
                            },
                            "watermark_height": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 5000
                            },
                            "watermark_top": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10000
                            },
                            "watermark_left": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10000
                            },
                            "watermark_opacity": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                            },
                            "watermark_type": {
                                "type": "string",
                                "enum": [
                                    "disabled",
                                    "js",
                                    "ffmpeg"
                                ]
                            },
                            "watermark_logo": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "animation_speed": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10000
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdatePlayerSettingsRequest"
            },
            "UpdateReviewRequest": {
                "type": "object",
                "properties": {
                    "rating": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 5
                    },
                    "review": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2000
                    }
                },
                "required": [
                    "rating"
                ],
                "title": "UpdateReviewRequest"
            },
            "UpdateS3SettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "active": {
                                "type": "boolean",
                                "enum": [
                                    "0",
                                    "1"
                                ]
                            },
                            "AWS_ACCESS_KEY_ID": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "AWS_SECRET_ACCESS_KEY": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "AWS_DEFAULT_REGION": {
                                "type": "string",
                                "maxLength": 100
                            },
                            "AWS_BUCKET": {
                                "type": "string",
                                "maxLength": 255
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateS3SettingsRequest"
            },
            "UpdateSmtpSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "protocol": {
                                "type": "string",
                                "maxLength": 50
                            },
                            "smtp_crypto": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "ssl",
                                    "tls",
                                    "starttls"
                                ]
                            },
                            "smtp_host": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "smtp_port": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535
                            },
                            "smtp_from_email": {
                                "type": "string",
                                "format": "email",
                                "maxLength": 255
                            },
                            "smtp_user": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "smtp_from_name": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "smtp_pass": {
                                "type": "string",
                                "maxLength": 1000
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateSmtpSettingsRequest"
            },
            "UpdateSystemSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "system_name": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "system_title": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "website_keywords": {
                                "type": "string",
                                "maxLength": 5000
                            },
                            "website_description": {
                                "type": "string",
                                "maxLength": 10000
                            },
                            "author": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "slogan": {
                                "type": "string",
                                "maxLength": 500
                            },
                            "system_email": {
                                "type": "string",
                                "format": "email",
                                "maxLength": 255
                            },
                            "application_email": {
                                "type": "string",
                                "format": "email",
                                "maxLength": 255
                            },
                            "address": {
                                "type": "string",
                                "maxLength": 5000
                            },
                            "phone": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "purchase_code": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "language": {
                                "type": "string",
                                "maxLength": 100
                            },
                            "timezone": {
                                "type": "string",
                                "maxLength": 100
                            },
                            "tutor_student_cancel_cutoff_hours": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 168
                            },
                            "tutor_instructor_cancel_cutoff_hours": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 168
                            },
                            "tutor_request_reject_cutoff_hours": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 168
                            },
                            "tutor_request_rejection_reason_required": {
                                "type": "boolean"
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateSystemSettingsRequest"
            },
            "UpdateZoomSettingsRequest": {
                "type": "object",
                "properties": {
                    "settings": {
                        "type": "object",
                        "properties": {
                            "zoom_account_email": {
                                "type": "string",
                                "format": "email",
                                "maxLength": 255
                            },
                            "zoom_account_id": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "zoom_client_id": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "zoom_client_secret": {
                                "type": "string",
                                "maxLength": 1000
                            },
                            "zoom_web_sdk": {
                                "type": "boolean",
                                "enum": [
                                    "0",
                                    "1"
                                ]
                            },
                            "zoom_sdk_client_id": {
                                "type": "string",
                                "maxLength": 255
                            },
                            "zoom_sdk_client_secret": {
                                "type": "string",
                                "maxLength": 1000
                            }
                        }
                    }
                },
                "required": [
                    "settings"
                ],
                "title": "UpdateZoomSettingsRequest"
            },
            "User": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "average_rating": {
                        "type": "string"
                    },
                    "role": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "facebook_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "profile_searchable": {
                        "type": "boolean"
                    },
                    "instructor_listed": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "website": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "skills": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "facebook": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "twitter": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "linkedin": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "about": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "biography": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "educations": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "photo": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "email_verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "feed_token": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "timezone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "paymentkeys": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "stripe_customer_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "video_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "emails_received_count": {
                        "type": "integer"
                    },
                    "last_email_sent_at": {
                        "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",
                    "average_rating",
                    "role",
                    "email",
                    "facebook_id",
                    "status",
                    "profile_searchable",
                    "instructor_listed",
                    "name",
                    "phone",
                    "website",
                    "skills",
                    "facebook",
                    "twitter",
                    "linkedin",
                    "address",
                    "about",
                    "biography",
                    "educations",
                    "photo",
                    "email_verified_at",
                    "feed_token",
                    "timezone",
                    "country",
                    "paymentkeys",
                    "stripe_customer_id",
                    "video_url",
                    "emails_received_count",
                    "last_email_sent_at",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                ],
                "title": "User"
            },
            "UserNotification": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "type": {
                        "type": "string"
                    },
                    "payload": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "read_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "user_id",
                    "type",
                    "payload",
                    "read_at",
                    "created_at",
                    "updated_at"
                ],
                "title": "UserNotification"
            },
            "Vacancy": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "department_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "location": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "work_mode": {
                        "type": "string"
                    },
                    "vacancy_location_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "requirements": {
                        "type": "array",
                        "items": []
                    },
                    "salary_range": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "responsibilities": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": []
                    },
                    "is_active": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "display_location": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "department_id",
                    "location",
                    "work_mode",
                    "vacancy_location_id",
                    "type",
                    "status",
                    "title",
                    "description",
                    "requirements",
                    "salary_range",
                    "responsibilities",
                    "is_active",
                    "created_at",
                    "updated_at",
                    "display_location"
                ],
                "title": "Vacancy"
            },
            "VacancyLocation": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "city",
                    "country",
                    "description",
                    "is_active",
                    "created_at",
                    "updated_at"
                ],
                "title": "VacancyLocation"
            }
        },
        "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"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "AuthorizationException": {
                "description": "Authorization error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}
